In [4]:
import nltk
import pandas as pd
from nltk.tokenize import sent_tokenize, word_tokenize, wordpunct_tokenize, TweetTokenizer
In [5]:
import matplotlib.pyplot as plt
import seaborn as sns
from string import punctuation
from nltk.corpus import wordnet
from nltk.stem import LancasterStemmer
from string import punctuation
from nltk.corpus import stopwords
from nltk.stem import LancasterStemmer
from nltk.stem.wordnet import WordNetLemmatizer
import re
import warnings
warnings.filterwarnings('ignore')
In [6]:
trainDF = pd.read_csv('train.csv', encoding = 'unicode_escape')
testDF = pd.read_csv('test.csv', encoding = 'unicode_escape')
In [7]:
print(trainDF.shape)
print(testDF.shape)
(27481, 10)
(4815, 9)
In [8]:
trainDF.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 27481 entries, 0 to 27480
Data columns (total 10 columns):
 #   Column            Non-Null Count  Dtype  
---  ------            --------------  -----  
 0   textID            27481 non-null  object 
 1   text              27480 non-null  object 
 2   selected_text     27480 non-null  object 
 3   sentiment         27481 non-null  object 
 4   Time of Tweet     27481 non-null  object 
 5   Age of User       27481 non-null  object 
 6   Country           27481 non-null  object 
 7   Population -2020  27481 non-null  int64  
 8   Land Area (Km²)   27481 non-null  float64
 9   Density (P/Km²)   27481 non-null  int64  
dtypes: float64(1), int64(2), object(7)
memory usage: 2.1+ MB
In [9]:
print(trainDF.columns)
print(testDF.columns)
Index(['textID', 'text', 'selected_text', 'sentiment', 'Time of Tweet',
       'Age of User', 'Country', 'Population -2020', 'Land Area (Km²)',
       'Density (P/Km²)'],
      dtype='object')
Index(['textID', 'text', 'sentiment', 'Time of Tweet', 'Age of User',
       'Country', 'Population -2020', 'Land Area (Km²)', 'Density (P/Km²)'],
      dtype='object')
In [10]:
trainDF.isnull().sum()
Out[10]:
textID              0
text                1
selected_text       1
sentiment           0
Time of Tweet       0
Age of User         0
Country             0
Population -2020    0
Land Area (Km²)     0
Density (P/Km²)     0
dtype: int64

Preprocessing¶

In [11]:
def preprocessing(df):
    df = df.dropna()
    df = df.drop(['Population -2020','Land Area (Km²)','Density (P/Km²)'], axis =1)
    
    return df
In [12]:
trainDF = preprocessing(trainDF)
testDF = preprocessing(testDF)
In [13]:
trainDF.text
Out[13]:
0                      I`d have responded, if I were going
1            Sooo SAD I will miss you here in San Diego!!!
2                                my boss is bullying me...
3                           what interview! leave me alone
4         Sons of ****, why couldn`t they put them on t...
                               ...                        
27476     wish we could come see u on Denver  husband l...
27477     I`ve wondered about rake to.  The client has ...
27478     Yay good for both of you. Enjoy the break - y...
27479                           But it was worth it  ****.
27480       All this flirting going on - The ATG smiles...
Name: text, Length: 27480, dtype: object
In [14]:
regexForRemovingURLs = r'(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-&?=%.]+'
In [15]:
trainDF[trainDF.text.str.match(regexForRemovingURLs)]
Out[15]:
textID text selected_text sentiment Time of Tweet Age of User Country
5 28b57f3990 http://www.dothebouncy.com/smf - some shameles... http://www.dothebouncy.com/smf - some shameles... neutral night 70-100 Antigua and Barbuda
64 98f25bc596 mannnn..... _ got an iphone!!! im jealous.... ... jealous.. negative noon 60-70 Germany
155 b948984e8d Mmmmmmmm... ? it in the morning Mmmmmmmm... ? it in the morning neutral night 70-100 Sierra Leone
201 c017d0c221 http://twitpic.com/66xlm - hate when my PARKE... hate negative morning 46-60 Argentina
395 3d635198c2 http://twitpic.com/4sx96 - before they put a C... http://twitpic.com/4sx96 - before they put a C... neutral night 70-100 Antigua and Barbuda
... ... ... ... ... ... ... ...
27074 871ca31b14 http://wave.google.com/ <3 Google ... wish the... wish positive night 31-45 Turkey
27114 556d273874 http://tinyurl.com/cyonct vote for Rob vote for Rob neutral morning 0-20 Brunei
27161 039547e4e8 http://twitpic.com/4wdgr - Yay! I`m a blonde a... http://twitpic.com/4wdgr - Yay! I`m a blonde a... neutral night 70-100 Guyana
27432 189879e1f2 Mmmmmm.... Coffee... Mmmmmm.... Coffee... neutral morning 0-20 Bosnia and Herzegovina
27472 8f5adc47ec http://twitpic.com/663vr - Wanted to visit the... were too late negative noon 60-70 Gabon

448 rows × 7 columns

In [16]:
sentences = []
for i in trainDF.text:
    sentences.append(re.sub(regexForRemovingURLs, '', i))
In [17]:
trainDF.text = sentences
In [18]:
trainDF.isnull().sum()
Out[18]:
textID           0
text             0
selected_text    0
sentiment        0
Time of Tweet    0
Age of User      0
Country          0
dtype: int64
In [19]:
testDF
Out[19]:
textID text sentiment Time of Tweet Age of User Country
0 f87dea47db Last session of the day http://twitpic.com/67ezh neutral morning 0-20 Afghanistan
1 96d74cb729 Shanghai is also really exciting (precisely -... positive noon 21-30 Albania
2 eee518ae67 Recession hit Veronique Branquinho, she has to... negative night 31-45 Algeria
3 01082688c6 happy bday! positive morning 46-60 Andorra
4 33987a8ee5 http://twitpic.com/4w75p - I like it!! positive noon 60-70 Angola
... ... ... ... ... ... ...
3529 e5f0e6ef4b its at 3 am, im very tired but i can`t sleep ... negative noon 21-30 Nicaragua
3530 416863ce47 All alone in this old house again. Thanks for... positive night 31-45 Niger
3531 6332da480c I know what you mean. My little dog is sinkin... negative morning 46-60 Nigeria
3532 df1baec676 _sutra what is your next youtube video gonna b... positive noon 60-70 North Korea
3533 469e15c5a8 http://twitpic.com/4woj2 - omgssh ang cute n... positive night 70-100 North Macedonia

3534 rows × 6 columns

In [20]:
print(trainDF.shape)
print(testDF.shape)
(27480, 7)
(3534, 6)
In [21]:
trainDF
Out[21]:
textID text selected_text sentiment Time of Tweet Age of User Country
0 cb774db0d1 I`d have responded, if I were going I`d have responded, if I were going neutral morning 0-20 Afghanistan
1 549e992a42 Sooo SAD I will miss you here in San Diego!!! Sooo SAD negative noon 21-30 Albania
2 088c60f138 my boss is bullying bullying me negative night 31-45 Algeria
3 9642c003ef what interview! leave me alone leave me alone negative morning 46-60 Andorra
4 358bd9e861 Sons of ****, why couldn`t they put them on t... Sons of ****, negative noon 60-70 Angola
... ... ... ... ... ... ... ...
27476 4eac33d1c0 wish we could come see u on Denver husband l... d lost negative night 31-45 Ghana
27477 4f4c4fc327 I`ve wondered about rake to. The client has ... , don`t force negative morning 46-60 Greece
27478 f67aae2310 Yay good for both of you. Enjoy the break - y... Yay good for both of you. positive noon 60-70 Grenada
27479 ed167662a5 But it was worth it ****. But it was worth it ****. positive night 70-100 Guatemala
27480 6f7127d9d7 All this flirting going on - The ATG smiles... All this flirting going on - The ATG smiles. Y... neutral morning 0-20 Guinea

27480 rows × 7 columns

In [22]:
corpus = trainDF['text'].tolist()
print(len(corpus))
27480
In [23]:
words = word_tokenize(str(corpus))
print("number of words by word_tokenize : {}".format(len(words)))
print(words[0:20])
number of words by word_tokenize : 488962
['[', "'", 'I', '`', 'd', 'have', 'responded', ',', 'if', 'I', 'were', 'going', "'", ',', "'", 'Sooo', 'SAD', 'I', 'will', 'miss']
In [24]:
words2 = wordpunct_tokenize(str(corpus))
print("number of words by wordpunct_tokenize : {}".format(len(words2)))
print(words2[0:20])

words3 = TweetTokenizer().tokenize(str(corpus))
print("number of words by TweetTokenizer : {}".format(len(words3)))
print(words3[0:20])
number of words by wordpunct_tokenize : 457148
["['", 'I', '`', 'd', 'have', 'responded', ',', 'if', 'I', 'were', 'going', "',", "'", 'Sooo', 'SAD', 'I', 'will', 'miss', 'you', 'here']
number of words by TweetTokenizer : 501141
['[', "'", 'I', '`', 'd', 'have', 'responded', ',', 'if', 'I', 'were', 'going', "'", ',', "'", 'Sooo', 'SAD', 'I', 'will', 'miss']
In [25]:
import string

def remove_punctuation(txt):
    return"".join([c for c in txt if c not in string.punctuation])
words_without_punctuation = [remove_punctuation(w.lower()) for w in words2 if remove_punctuation(w)!='']

print("number of words after punctuation removing: {}". format(len(words_without_punctuation)))
print(words_without_punctuation[0:20])
number of words after punctuation removing: 354781
['i', 'd', 'have', 'responded', 'if', 'i', 'were', 'going', 'sooo', 'sad', 'i', 'will', 'miss', 'you', 'here', 'in', 'san', 'diego', 'my', 'boss']
In [26]:
from nltk.corpus import stopwords 
from nltk.probability import FreqDist

stop_words= stopwords.words("english")

words_that_are_not_stopwords = [ word for word in words_without_punctuation if word not in stop_words]
fdist_stopwords = FreqDist(words_that_are_not_stopwords)

print("FreqDist with {} samples and {} outcomes".format(len(fdist_stopwords), len(words_that_are_not_stopwords)))
print(words_that_are_not_stopwords[0:20])
FreqDist with 24064 samples and 189927 outcomes
['responded', 'going', 'sooo', 'sad', 'miss', 'san', 'diego', 'boss', 'bullying', 'interview', 'leave', 'alone', 'sons', 'put', 'releases', 'already', 'bought', 'shameless', 'plugging', 'best']
In [27]:
# Define function to lemmatize a single word with its part of speech
def lemmatize_word(word):
    pos = nltk.pos_tag([word])[0][1][0].upper()
    tag_dict = {"J": wordnet.ADJ,
                "N": wordnet.NOUN,
                "V": wordnet.VERB,
                "R": wordnet.ADV}
    return WordNetLemmatizer().lemmatize(word, tag_dict.get(pos, wordnet.NOUN))

# Define function to preprocess a single row of text
def preprocess_text(row):
    text = re.sub('[^a-zA-Z]', ' ', row['text'])
    text = text.lower()
    text = re.sub("&lt;/?.*?&gt;"," &lt;&gt; ",text)
    text = re.sub("(\\d|\\W)+"," ",text)
    words = text.split()
    stopwords = set(nltk.corpus.stopwords.words('english'))
    words_without_stopwords = [word for word in words if not word in stopwords]
    lemmatized_words = [lemmatize_word(word) for word in words_without_stopwords]
    return ' '.join(lemmatized_words)

# Load the original DataFrame
df = pd.DataFrame(trainDF)

# Apply the preprocessing function to each row of text in the DataFrame
tex = df.apply(preprocess_text, axis=1)
df['text'] = tex

# Create a frequency distribution of lemmatized words
lemmatized_words = [word for text in df['text'] for word in text.split()]
fdist_lemmatized = nltk.FreqDist(lemmatized_words)

data_main = pd.DataFrame()
data_main["text"] = df['text']
data_main["sentiment"] = df["sentiment"].values
In [28]:
data_main
Out[28]:
text sentiment
0 respond go neutral
1 sooo sad miss san diego negative
2 bos bullying negative
3 interview leave alone negative
4 son put release already bought negative
... ... ...
27476 wish could come see u denver husband lose job ... negative
27477 wonder rake client make clear net force devs l... negative
27478 yay good enjoy break probably need hectic week... positive
27479 worth positive
27480 flirt go atg smile yay hug neutral

27480 rows × 2 columns

In [29]:
data_main['Time of Tweet'] = trainDF['Time of Tweet']
data_main['Age of User'] = trainDF['Age of User']
data_main['Country'] = trainDF['Country']
data_main_train = data_main     #Final train data
In [30]:
data_main_train
Out[30]:
text sentiment Time of Tweet Age of User Country
0 respond go neutral morning 0-20 Afghanistan
1 sooo sad miss san diego negative noon 21-30 Albania
2 bos bullying negative night 31-45 Algeria
3 interview leave alone negative morning 46-60 Andorra
4 son put release already bought negative noon 60-70 Angola
... ... ... ... ... ...
27476 wish could come see u denver husband lose job ... negative night 31-45 Ghana
27477 wonder rake client make clear net force devs l... negative morning 46-60 Greece
27478 yay good enjoy break probably need hectic week... positive noon 60-70 Grenada
27479 worth positive night 70-100 Guatemala
27480 flirt go atg smile yay hug neutral morning 0-20 Guinea

27480 rows × 5 columns

In [31]:
data_main_test = testDF.drop('textID', axis=1)
In [32]:
data_main_test
Out[32]:
text sentiment Time of Tweet Age of User Country
0 Last session of the day http://twitpic.com/67ezh neutral morning 0-20 Afghanistan
1 Shanghai is also really exciting (precisely -... positive noon 21-30 Albania
2 Recession hit Veronique Branquinho, she has to... negative night 31-45 Algeria
3 happy bday! positive morning 46-60 Andorra
4 http://twitpic.com/4w75p - I like it!! positive noon 60-70 Angola
... ... ... ... ... ...
3529 its at 3 am, im very tired but i can`t sleep ... negative noon 21-30 Nicaragua
3530 All alone in this old house again. Thanks for... positive night 31-45 Niger
3531 I know what you mean. My little dog is sinkin... negative morning 46-60 Nigeria
3532 _sutra what is your next youtube video gonna b... positive noon 60-70 North Korea
3533 http://twitpic.com/4woj2 - omgssh ang cute n... positive night 70-100 North Macedonia

3534 rows × 5 columns

EDA¶

In [33]:
data_main['sentiment'].value_counts().plot.bar(figsize = (8, 5))
import matplotlib.pyplot as plt

sentiment_counts = data_main['sentiment'].value_counts()

# Define colors for each sentiment category
colors = ['#4e79a6', '#81c784', '#1f77b4']


# Create the bar plot with custom colors
plt.bar(sentiment_counts.index, sentiment_counts.values, color=colors, width=0.5)

# Customize the plot
plt.title('Sentiment Distribution')
plt.xlabel('Sentiment')
plt.ylabel('Count')

# Show the plot
plt.show()
In [34]:
fdist_lemmatized
Out[34]:
FreqDist({'get': 2986, 'go': 2804, 'day': 2404, 'good': 1553, 'work': 1453, 'like': 1441, 'love': 1341, 'u': 1200, 'well': 1076, 'today': 1072, ...})
In [35]:
from nltk.probability import FreqDist

# Create a sample FreqDist object
freq_dist = fdist_lemmatized
# Get the most common words and their frequencies
common_words = freq_dist.most_common(20)

# Create a DataFrame from the list of tuples
freq_common_words= pd.DataFrame(common_words, columns=['Common_words', 'count'])

common_words_count = freq_common_words.loc[0:,:]
common_words_count.columns = ['Common_words','count']
common_words_count
Out[35]:
Common_words count
0 get 2986
1 go 2804
2 day 2404
3 good 1553
4 work 1453
5 like 1441
6 love 1341
7 u 1200
8 well 1076
9 today 1072
10 time 1058
11 one 1042
12 see 1003
13 want 982
14 make 981
15 happy 974
16 miss 964
17 know 961
18 lol 936
19 really 904
In [36]:
import plotly.express as px
fig = px.bar(freq_common_words, x="count", y="Common_words", title='Most Common Words', orientation='h', 
             width=700, height=600,color='Common_words')
fig.show()
In [37]:
from wordcloud import WordCloud
WordCloud()

sentiment = 'negative'
negative_normal_words = ' '.join(data_main.loc[data_main['sentiment'] == sentiment, 'text'].tolist())

wordcloud = WordCloud(width=800, height=500,random_state = 0,background_color='black',  max_font_size = 110)

wordcloud.generate(negative_normal_words)

plt.figure(figsize=(8, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis('off')
plt.title('The Negative Words')
plt.show()

normal_words negative_words = word_tokenize(str(normal_words)) negative_word_list = [word for word in negative_words if word.lower() in normal_words] freq_negative_words = nltk.FreqDist(negative_word_list) print(freq_negative_words.most_common(20))

In [38]:
negative_words = word_tokenize(str(negative_normal_words))
negative_word_list = [word for word in negative_words if word.lower() in negative_words]
freq_negative_words = nltk.FreqDist(negative_word_list)
print(freq_negative_words.most_common(20))
[('get', 929), ('go', 871), ('miss', 663), ('like', 486), ('work', 483), ('feel', 457), ('day', 406), ('bad', 376), ('sad', 371), ('im', 349), ('sorry', 339), ('really', 337), ('want', 321), ('today', 306), ('one', 300), ('hate', 298), ('make', 287), ('think', 279), ('know', 278), ('u', 278)]
In [39]:
freq_negative_words_list = pd.DataFrame(freq_negative_words.most_common(20), columns=['negative_Common_words', 'count'], index=range(1,21))
negative_common_words_count = freq_negative_words_list.loc[0:,:]
negative_common_words_count
Out[39]:
negative_Common_words count
1 get 929
2 go 871
3 miss 663
4 like 486
5 work 483
6 feel 457
7 day 406
8 bad 376
9 sad 371
10 im 349
11 sorry 339
12 really 337
13 want 321
14 today 306
15 one 300
16 hate 298
17 make 287
18 think 279
19 know 278
20 u 278
In [40]:
import plotly.express as px
fig = px.bar(negative_common_words_count, x="count", y="negative_Common_words", title='Most  Negative Common Words', orientation='h', 
             width=700, height=600,color='negative_Common_words')
fig.show()
In [41]:
sentiment = 'positive'
positive_normal_words = ' '.join(data_main.loc[data_main['sentiment'] == sentiment, 'text'].tolist())

wordcloud.generate(positive_normal_words)

plt.figure(figsize=(8, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis('off')
plt.title('The Positive Words')
plt.show()
In [42]:
positive_words = word_tokenize(str(positive_normal_words))
positive_word_list = [word for word in positive_words if word.lower() in positive_words]
freq_positive_words = nltk.FreqDist(positive_word_list)
print(freq_positive_words.most_common(20))
[('day', 1337), ('good', 1046), ('love', 1045), ('happy', 840), ('get', 779), ('go', 687), ('mother', 674), ('thanks', 554), ('great', 486), ('like', 480), ('well', 453), ('u', 431), ('hope', 403), ('see', 345), ('fun', 339), ('work', 337), ('night', 337), ('today', 336), ('time', 335), ('nice', 334)]
In [43]:
freq_positive_words_list = pd.DataFrame(freq_positive_words.most_common(20), columns=['positive_Common_words', 'count'], index=range(1,21))
positive_common_words_count = freq_positive_words_list.loc[0:,:]
positive_common_words_count
Out[43]:
positive_Common_words count
1 day 1337
2 good 1046
3 love 1045
4 happy 840
5 get 779
6 go 687
7 mother 674
8 thanks 554
9 great 486
10 like 480
11 well 453
12 u 431
13 hope 403
14 see 345
15 fun 339
16 work 337
17 night 337
18 today 336
19 time 335
20 nice 334
In [44]:
import plotly.express as px
fig = px.bar(positive_common_words_count, x="count", y="positive_Common_words", title='Most  positive Common Words', orientation='h', 
             width=700, height=600,color='positive_Common_words')
fig.show()
In [45]:
sentiment = 'neutral'
neutral_normal_words = ' '.join(data_main.loc[data_main['sentiment'] == sentiment, 'text'].tolist())

wordcloud.generate(neutral_normal_words)

plt.figure(figsize=(8, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis('off')
plt.title('The Neutral Words')
plt.show()
In [46]:
neutral_words = word_tokenize(str(neutral_normal_words))
neutral_word_list = [word for word in neutral_words if word.lower() in neutral_words]
freq_neutral_words = nltk.FreqDist(neutral_word_list)
print(freq_neutral_words.most_common(20))
[('get', 1278), ('go', 1246), ('day', 661), ('work', 633), ('u', 491), ('like', 475), ('time', 461), ('want', 449), ('lol', 447), ('see', 436), ('today', 430), ('one', 430), ('know', 421), ('back', 408), ('well', 390), ('make', 362), ('think', 351), ('home', 334), ('need', 327), ('new', 323)]
In [47]:
freq_neutral_words_list = pd.DataFrame(freq_neutral_words.most_common(20), columns=['neutral_Common_words', 'count'], index=range(1,21))
neutral_common_words_count = freq_neutral_words_list.loc[0:,:]
neutral_common_words_count
Out[47]:
neutral_Common_words count
1 get 1278
2 go 1246
3 day 661
4 work 633
5 u 491
6 like 475
7 time 461
8 want 449
9 lol 447
10 see 436
11 today 430
12 one 430
13 know 421
14 back 408
15 well 390
16 make 362
17 think 351
18 home 334
19 need 327
20 new 323
In [48]:
import plotly.express as px
fig = px.bar(neutral_common_words_count, x="count", y="neutral_Common_words", title='Most neutral Common Words', orientation='h', 
             width=700, height=600,color='neutral_Common_words')
fig.show()
In [49]:
from nltk import ngrams
# generate bi-grams
negative_bigrams = list(ngrams(negative_words, 2))
print(negative_bigrams[0:20])
[('sooo', 'sad'), ('sad', 'miss'), ('miss', 'san'), ('san', 'diego'), ('diego', 'bos'), ('bos', 'bullying'), ('bullying', 'interview'), ('interview', 'leave'), ('leave', 'alone'), ('alone', 'son'), ('son', 'put'), ('put', 'release'), ('release', 'already'), ('already', 'bought'), ('bought', 'sharpie'), ('sharpie', 'run'), ('run', 'dangerously'), ('dangerously', 'low'), ('low', 'ink'), ('ink', 'want')]
In [50]:
negative_bigrams_word_list = [word for word in negative_bigrams]
negative_bigrams_list = nltk.FreqDist(negative_bigrams_word_list)
print(negative_bigrams_list.most_common(20))
[(('gon', 'na'), 171), (('feel', 'like'), 102), (('wan', 'na'), 96), (('look', 'like'), 54), (('want', 'go'), 53), (('last', 'night'), 50), (('sorry', 'hear'), 40), (('na', 'go'), 39), (('got', 'ta'), 37), (('wish', 'could'), 33), (('feel', 'bad'), 32), (('go', 'miss'), 31), (('make', 'sad'), 31), (('go', 'work'), 29), (('feel', 'well'), 29), (('go', 'home'), 28), (('go', 'bed'), 28), (('na', 'miss'), 27), (('bad', 'day'), 27), (('feel', 'sick'), 25)]
In [51]:
freq_negative_bigrams_list = pd.DataFrame(negative_bigrams_list.most_common(20), columns=['bigrams_negative_words', 'count'], index=range(1,21))
negative_bigrams_words_count = freq_negative_bigrams_list.loc[0:,:]
negative_bigrams_words_count
Out[51]:
bigrams_negative_words count
1 (gon, na) 171
2 (feel, like) 102
3 (wan, na) 96
4 (look, like) 54
5 (want, go) 53
6 (last, night) 50
7 (sorry, hear) 40
8 (na, go) 39
9 (got, ta) 37
10 (wish, could) 33
11 (feel, bad) 32
12 (go, miss) 31
13 (make, sad) 31
14 (go, work) 29
15 (feel, well) 29
16 (go, home) 28
17 (go, bed) 28
18 (na, miss) 27
19 (bad, day) 27
20 (feel, sick) 25
In [52]:
freq_negative_bigrams_list['bigram_str'] = freq_negative_bigrams_list['bigrams_negative_words'].apply(lambda x: ', '.join(x))
In [53]:
freq_negative_bigrams_list
Out[53]:
bigrams_negative_words count bigram_str
1 (gon, na) 171 gon, na
2 (feel, like) 102 feel, like
3 (wan, na) 96 wan, na
4 (look, like) 54 look, like
5 (want, go) 53 want, go
6 (last, night) 50 last, night
7 (sorry, hear) 40 sorry, hear
8 (na, go) 39 na, go
9 (got, ta) 37 got, ta
10 (wish, could) 33 wish, could
11 (feel, bad) 32 feel, bad
12 (go, miss) 31 go, miss
13 (make, sad) 31 make, sad
14 (go, work) 29 go, work
15 (feel, well) 29 feel, well
16 (go, home) 28 go, home
17 (go, bed) 28 go, bed
18 (na, miss) 27 na, miss
19 (bad, day) 27 bad, day
20 (feel, sick) 25 feel, sick
In [54]:
import plotly.express as px
negative_bigrams_words_count.dropna(inplace=True)
freq_negative_bigrams_list = freq_negative_bigrams_list.sort_values(by='count', ascending=True)
fig = px.bar(freq_negative_bigrams_list, x="count", y="bigram_str", title='Most Common negative bigram Words', orientation='h', 
             width=700, height=600,color='bigrams_negative_words')
fig.show()
In [55]:
from nltk import ngrams
# generate bi-grams
positive_bigrams = list(ngrams(positive_words, 2))
print(positive_bigrams[0:20])
[('feeding', 'baby'), ('baby', 'fun'), ('fun', 'smile'), ('smile', 'coo'), ('coo', 'journey'), ('journey', 'u'), ('u', 'become'), ('become', 'cooler'), ('cooler', 'possible'), ('possible', 'really'), ('really', 'really'), ('really', 'like'), ('like', 'song'), ('song', 'love'), ('love', 'story'), ('story', 'taylor'), ('taylor', 'swift'), ('swift', 'play'), ('play', 'ghost'), ('ghost', 'online')]
In [56]:
positive_bigrams_word_list = [word for word in positive_bigrams]
positive_bigrams_list = nltk.FreqDist(positive_bigrams_word_list)
print(positive_bigrams_list.most_common(20))
[(('mother', 'day'), 546), (('happy', 'mother'), 442), (('good', 'morning'), 142), (('gon', 'na'), 101), (('day', 'mom'), 70), (('star', 'war'), 69), (('wish', 'could'), 69), (('good', 'luck'), 67), (('look', 'forward'), 62), (('war', 'day'), 60), (('good', 'day'), 60), (('happy', 'birthday'), 57), (('last', 'night'), 56), (('happy', 'star'), 53), (('good', 'night'), 53), (('wan', 'na'), 51), (('day', 'mother'), 51), (('great', 'day'), 47), (('really', 'good'), 45), (('star', 'trek'), 43)]
In [57]:
freq_positive_bigrams_list = pd.DataFrame(positive_bigrams_list.most_common(20), columns=['bigrams_positive_words', 'count'], index=range(1,21))
positive_bigrams_words_count = freq_positive_bigrams_list.loc[0:,:]
positive_bigrams_words_count
Out[57]:
bigrams_positive_words count
1 (mother, day) 546
2 (happy, mother) 442
3 (good, morning) 142
4 (gon, na) 101
5 (day, mom) 70
6 (star, war) 69
7 (wish, could) 69
8 (good, luck) 67
9 (look, forward) 62
10 (war, day) 60
11 (good, day) 60
12 (happy, birthday) 57
13 (last, night) 56
14 (happy, star) 53
15 (good, night) 53
16 (wan, na) 51
17 (day, mother) 51
18 (great, day) 47
19 (really, good) 45
20 (star, trek) 43
In [58]:
freq_positive_bigrams_list['bigram_str_positive'] = freq_positive_bigrams_list['bigrams_positive_words'].apply(lambda x: ', '.join(x))
In [59]:
freq_positive_bigrams_list
Out[59]:
bigrams_positive_words count bigram_str_positive
1 (mother, day) 546 mother, day
2 (happy, mother) 442 happy, mother
3 (good, morning) 142 good, morning
4 (gon, na) 101 gon, na
5 (day, mom) 70 day, mom
6 (star, war) 69 star, war
7 (wish, could) 69 wish, could
8 (good, luck) 67 good, luck
9 (look, forward) 62 look, forward
10 (war, day) 60 war, day
11 (good, day) 60 good, day
12 (happy, birthday) 57 happy, birthday
13 (last, night) 56 last, night
14 (happy, star) 53 happy, star
15 (good, night) 53 good, night
16 (wan, na) 51 wan, na
17 (day, mother) 51 day, mother
18 (great, day) 47 great, day
19 (really, good) 45 really, good
20 (star, trek) 43 star, trek
In [60]:
import plotly.express as px
freq_positive_bigrams_list.dropna(inplace=True)
fig = px.bar(freq_positive_bigrams_list, x="count", y="bigram_str_positive", title='Most Common positive bigram Words', orientation='h', 
             width=700, height=600,color='bigram_str_positive')
fig.show()
In [61]:
from nltk import ngrams
# generate bi-grams
neutral_bigrams = list(ngrams(neutral_words, 2))
print(neutral_bigrams[0:20])
[('respond', 'go'), ('go', 'shameless'), ('shameless', 'plug'), ('plug', 'best'), ('best', 'ranger'), ('ranger', 'forum'), ('forum', 'earth'), ('earth', 'soooo'), ('soooo', 'high'), ('high', 'much'), ('much', 'love'), ('love', 'hopeful'), ('hopeful', 'reckon'), ('reckon', 'chance'), ('chance', 'minimal'), ('minimal', 'p'), ('p', 'never'), ('never', 'gon'), ('gon', 'na'), ('na', 'get')]
In [62]:
neutral_bigrams_word_list = [word for word in neutral_bigrams]
neutral_bigrams_list = nltk.FreqDist(neutral_bigrams_word_list)
print(neutral_bigrams_list.most_common(20))
[(('gon', 'na'), 161), (('wan', 'na'), 102), (('got', 'ta'), 75), (('mother', 'day'), 72), (('last', 'night'), 67), (('look', 'like'), 59), (('get', 'ready'), 56), (('want', 'go'), 54), (('next', 'week'), 51), (('get', 'back'), 51), (('go', 'bed'), 48), (('na', 'go'), 46), (('go', 'home'), 43), (('feel', 'like'), 42), (('last', 'day'), 41), (('go', 'see'), 38), (('go', 'get'), 37), (('get', 'home'), 37), (('wish', 'could'), 36), (('go', 'back'), 35)]
In [63]:
freq_neutral_bigrams_list = pd.DataFrame(neutral_bigrams_list.most_common(20), columns=['bigrams_neutral_words', 'count'], index=range(1,21))
neutral_bigrams_words_count = freq_neutral_bigrams_list.loc[0:,:]
neutral_bigrams_words_count
Out[63]:
bigrams_neutral_words count
1 (gon, na) 161
2 (wan, na) 102
3 (got, ta) 75
4 (mother, day) 72
5 (last, night) 67
6 (look, like) 59
7 (get, ready) 56
8 (want, go) 54
9 (next, week) 51
10 (get, back) 51
11 (go, bed) 48
12 (na, go) 46
13 (go, home) 43
14 (feel, like) 42
15 (last, day) 41
16 (go, see) 38
17 (go, get) 37
18 (get, home) 37
19 (wish, could) 36
20 (go, back) 35
In [64]:
freq_neutral_bigrams_list['bigram_str_neutral'] = freq_neutral_bigrams_list['bigrams_neutral_words'].apply(lambda x: ', '.join(x))
In [65]:
freq_neutral_bigrams_list
Out[65]:
bigrams_neutral_words count bigram_str_neutral
1 (gon, na) 161 gon, na
2 (wan, na) 102 wan, na
3 (got, ta) 75 got, ta
4 (mother, day) 72 mother, day
5 (last, night) 67 last, night
6 (look, like) 59 look, like
7 (get, ready) 56 get, ready
8 (want, go) 54 want, go
9 (next, week) 51 next, week
10 (get, back) 51 get, back
11 (go, bed) 48 go, bed
12 (na, go) 46 na, go
13 (go, home) 43 go, home
14 (feel, like) 42 feel, like
15 (last, day) 41 last, day
16 (go, see) 38 go, see
17 (go, get) 37 go, get
18 (get, home) 37 get, home
19 (wish, could) 36 wish, could
20 (go, back) 35 go, back
In [66]:
import plotly.express as px
freq_neutral_bigrams_list.dropna(inplace=True)
fig = px.bar(freq_neutral_bigrams_list, x="count", y="bigram_str_neutral", title='Most Common neutral bigram Words', orientation='h', 
             width=700, height=600,color='bigram_str_neutral')
fig.show()

Models¶

In [67]:
from sklearn.metrics import classification_report, accuracy_score
In [68]:
from sklearn.model_selection import train_test_split

# select the columns you want to use as features
X_train = data_main_train[['text','Time of Tweet', 'Age of User', 'Country']].values
#X_train = data_main_train['text'].values
X_test = data_main_test[['text','Time of Tweet', 'Age of User', 'Country']].values
#X_test = data_main_test['text'].values
y_train = data_main_train['sentiment'].values
y_test = data_main_test['sentiment'].values

# split X and y into training and testing sets
X_train1, X_test1, y_train1, y_test1 = train_test_split(X_train, y_train, test_size=0.15, random_state=0)

# print the shapes of the resulting arrays
print('X_train shape:', X_train1.shape)
print('X_test shape:', X_test1.shape)
print('y_train shape:', y_train1.shape)
print('y_test shape:', y_test1.shape)
X_train shape: (23358, 4)
X_test shape: (4122, 4)
y_train shape: (23358,)
y_test shape: (4122,)
In [69]:
X_train_as_a_list = [' '.join(x) for x in X_train1.tolist()]
X_test_as_a_list = [' '.join(x) for x in X_test1.tolist()]
In [70]:
X_train_as_a_list
Out[70]:
['happy friday u know get copy bt art u mel fake twitter n find thx noon 60-70 Bulgaria',
 'yea really noon 21-30 Botswana',
 'idk song noon 21-30 Luxembourg',
 'good industry plan go far away ohio hate night 31-45 Saint Lucia',
 'actually sweden ikea room stay night though stay across street night 31-45 Tonga',
 'today geez get ready graduation night 31-45 Finland',
 'boo come watch telenovelas braid others hair morning 46-60 Burundi',
 'hate weather suck want go tonight n mess like noon 21-30 Bhutan',
 'gotta show monday hopefully head well night 31-45 Bolivia',
 'sorry understand people expect everyone react thing poise night 31-45 Finland',
 'get back pool need ice knee noon 21-30 Uruguay',
 ' noon 21-30 Gabon',
 'bed watch rove night 31-45 United Kingdom',
 'alright gang gotta go park family hour back mwahs yu head bed night 31-45 Algeria',
 'already miss biddy bop home mom night watch little bro get rest birthday party tomorrow night 70-100 Guatemala',
 'dont think ganna text morning 46-60 Sri Lanka',
 'luh tooooo noon 60-70 Moldova',
 'thats helpful least know get place secure already thing pan finger cross morning 0-20 Kazakhstan',
 'joke long tweet night 70-100 Bahamas',
 'fever awesome tonsil swollen even eat solid food still location picture rule though morning 46-60 United States of America',
 'already know dish torta hotdog itlog hurrah noon 21-30 Gabon',
 'set get room last saturday apologise enough miss deccy morning 0-20 Ireland',
 'chill casa noon 60-70 Tanzania',
 'maybe go apartment shopping ashley morning 46-60 Yemen',
 'outside play ball dog hot sweaty morning 0-20 Liberia',
 'want get blackberry afford watch telly relax hard sesion tomorrow noon 21-30 Malta',
 'tire sick time noon 60-70 Dominican Republic',
 'go jordan jeffs wedding next weekend atl morning 46-60 Burundi',
 'oops cy place near trouble morning 46-60 Bahrain',
 'funny even know night 31-45 Panama',
 'someone take care im sick noon 60-70 Nicaragua',
 'sent message night 31-45 Croatia',
 'haha neither matter though guy want morning 0-20 Greece',
 'eat zippys candace night 31-45 Barbados',
 'haha thanks morning 46-60 Burundi',
 'work noon 21-30 Slovakia',
 'set phone twitter noon 60-70 Sudan',
 'stupid wireless wont work downstairs noon 21-30 Gabon',
 'hope feel well soon little magic girl night 31-45 Kiribati',
 'really lookin forward monday bak college night 70-100 Lesotho',
 'go service tonight due fact yet find dress prom tomorrow ugh noon 21-30 Myanmar (formerly Burma)',
 'liesboystell one love really several woman night 31-45 Bahamas',
 'yes go see star trek sooooo much fun night 70-100 Cabo Verde',
 'see october love new book next one night 31-45 Jordan',
 'unfortunately purpose itunes shuffle follow dreadzone life ruin music trauma noon 21-30 Albania',
 'much love texas dislike needle could interfere night 31-45 Uzbekistan',
 'home cat right night 31-45 India',
 'come uber successful make mistake make entirely new one night 31-45 Kiribati',
 'dye hair morning 46-60 Rwanda',
 'man tha mojitos earlier get feelin type funny hope get sick noon 21-30 Colombia',
 'happy mother day love morning 46-60 Nigeria',
 'trap work day night 31-45 Comoros',
 'add butt name phone make go home cold love night 70-100 Burkina Faso',
 'upload photo facebook myspace later night 31-45 Guatemala',
 'aww suck morning 46-60 Belarus',
 'wish bed morning 0-20 Indonesia',
 'american trade journalist ask pr almost time uk journalist much come morning 46-60 Jamaica',
 'math fun oh well get cook soon get home noon 21-30 Holy See',
 'city dippin iz u fun much eye candy remember miss lol noon 21-30 Israel',
 'need coffee b ut get ready start new day lie noon 60-70 Denmark',
 'may th noon 60-70 Israel',
 'yup day old morning 46-60 Ethiopia',
 'tomorrow mother day good food present mom good back go junction coolest people ollies night 31-45 Mexico',
 'im eye doctor bring trinity cause mom fell stair today broke toe ugh noon 60-70 Cameroon',
 'direct energy create men jewelry frequent walk noon 60-70 Grenada',
 'miss nothing except lay beside pool every day summer much well spending day class noon 60-70 Myanmar (formerly Burma)',
 'g day hasnt without ur run conversation day noon 21-30 Zambia',
 'read book heard feed spay love great motto pet owner although involve morning 46-60 Ethiopia',
 'lol read like book morning 46-60 Guinea',
 'cart path morning 0-20 Solomon Islands',
 'arrogant tap oregon noon 21-30 Bhutan',
 'two small dog good hear center parcs wd take cruise new york queen mary real treat morning 46-60 China',
 'wish could go soco go climb instead stuck work weekend night 70-100 Australia',
 'thanks try boarding morning 0-20 Cambodia',
 'already think show go miss broke morning 0-20 Afghanistan',
 'mad tire hols miss chomp chomp terribly noon 60-70 Fiji',
 'use live ocean shoulda go beach often morning 0-20 Cuba',
 'happy birthday night 31-45 Ghana',
 'friday last much fun skint though night 31-45 South Africa',
 'exam noon 21-30 Paraguay',
 'add comment friend want sum noon 21-30 Bulgaria',
 'second popular page governmental site fail morning 0-20 Jamaica',
 'get thinkin weird w dog morning 0-20 Bosnia and Herzegovina',
 'omggg crazy cobra wantewd see london morning 0-20 Afghanistan',
 'go bro tonight brett night 70-100 India',
 'follow friday bit hard work kick friday morning 46-60 Ethiopia',
 'watch vintage topgear night 31-45 Eswatini (fmr. "Swaziland")',
 'yay back home morning 0-20 Ukraine',
 'send blog r feed site republish send traffic noon 60-70 Bhutan',
 'brief preview omg james creepy role scar night 31-45 Laos',
 'feature ykyat nnd morning 46-60 Yemen',
 'know morning 0-20 Latvia',
 'get twit link fail morning 46-60 Afghanistan',
 'noooo favorite coworker get new job marc jacob show fair want go night 31-45 Spain',
 'lb still huge achievement though morning 0-20 Vanuatu',
 'air morning 0-20 Ukraine',
 'change num give good dude morning 0-20 Ireland',
 'fall celebrity worship write think best rock noon 60-70 South Sudan',
 'computer remains dead morning 0-20 Haiti',
 'next time night 70-100 Equatorial Guinea',
 'apparently today happy star war day suppose say may th night 70-100 Italy',
 'take endorse spot thanks endorsement morning 46-60 Lithuania',
 'coooooooool yes ciwwaf awesome night 31-45 Senegal',
 'dammit hulu desktop totally screw ability talk particular port one dev server watch code night 70-100 Senegal',
 'yep still seat left pracc workshop w see morning 46-60 Guinea',
 ' morning 0-20 China',
 'woooooooooo come nottingham point lovelovelove noon 60-70 Libya',
 'watch ocean vega seem appropriate night 31-45 Guatemala',
 'aila cyclone left house calcutta broken sunshade balcony huge branch tree thru bathroom noon 60-70 South Sudan',
 'thanks pp morning 46-60 Mozambique',
 'nope san leandro marina hope well noon 21-30 Kenya',
 'actually people decisive noon 21-30 Denmark',
 'saw snl must overjoyed finally go noon 60-70 Denmark',
 'send angry vibe individual blue vehicle hit car qfc parking lot broad fail leave note morning 0-20 Andorra',
 'greenville drive game without baseball guy clown night 70-100 Sierra Leone',
 'lol ever forget morning 46-60 Georgia',
 'dog nemo cause wimpers every morning leave night 31-45 Netherlands',
 'get one usb key without fancy packaging night 31-45 Finland',
 'laurie send love blessing heal thought family peace morning 46-60 Solomon Islands',
 'awe work bbq moi weekend night 31-45 Uzbekistan',
 'take long feel like still asleep morning 46-60 Ukraine',
 'think get cold night 70-100 Marshall Islands',
 'long someone make lol morning 46-60 Saint Vincent and the Grenadines',
 'hug hug hug glad feel well noon 60-70 Nepal',
 'miss good old day noon 21-30 Slovakia',
 'know take butter actual butter xoxo noon 60-70 Belgium',
 'last week hit guinea pig picture webshots even promote way go noon 21-30 South Sudan',
 'massive headache morning 0-20 Belarus',
 'givee anything lovee daniel schuhmacher noon 60-70 Poland',
 'hello bank holiday monday hello revision morning 46-60 Mozambique',
 'yeah peep good day catchup everyone morning 0-20 Brunei',
 'internet wtf think im gonna sleep afterward internet drive crazyyy night 70-100 Netherlands',
 'ohhh ok like frustrate hand g iphone last week upgraded unlock morning 46-60 Benin',
 'get kansa city excite fun weekend family si parker josh noon 60-70 Denmark',
 'n btw happy mother day sissy morning 46-60 Serbia',
 'tummy hurt night 31-45 Spain',
 'rise follow back morning 0-20 Haiti',
 'summer finally graduation week noon 21-30 Botswana',
 'cold morning 0-20 Indonesia',
 'thought ur go somewhere invitw u night 31-45 Italy',
 'would join shopping work weekend six degree seperation confsuing morning 0-20 France',
 'miss jack n box whataburger oooo taco cabanaaaaaa lmao morning 0-20 Greece',
 'truly impressive come close take argument whether web need sub new level though noon 60-70 Poland',
 'yeah planning actually get kinokuniya discount card go splurge worried overwhelmed noon 21-30 Kenya',
 'ross look j code facebook notice j kid buddy told night 70-100 Bolivia',
 'fun webcamming caroooo night 70-100 Australia',
 'yes thank contact ce response noon 60-70 Guinea-Bissau',
 ' night 70-100 Algeria',
 'bought magazine morning 46-60 Bosnia and Herzegovina',
 'good sorry night 31-45 Cabo Verde',
 'ohh realize still talk b like dat noon 21-30 Malaysia',
 'sick ians come good morning 46-60 Nauru',
 'lawrence forget something morning nearly ran bottom hill warm shop x morning 0-20 China',
 'birthday girl bless live another year celebrate love one morning 0-20 Argentina',
 'dude sorry never get number fail remember night 31-45 India',
 'migraine fight way back last night morning 0-20 Brunei',
 'week palm pre come centro dy temp phone contact transfer yet sadpanda fb noon 21-30 Libya',
 'pretty good actually lame episode otherwise good give try night 70-100 Gambia',
 'crazy debt issue maybe mess closing old account really sure look like may cover morning 0-20 Hungary',
 'interest day wonder today crazy hope still diggin spartacus aka mike e morning 46-60 Papua New Guinea',
 'forget say hahaha able get home noon 60-70 Slovakia',
 'r get one either dog pretty sure bunny survive struggle tom noon 21-30 Denmark',
 'jealous know able see conan noon 60-70 Botswana',
 'hope hoe much much without though lol morning 46-60 Democratic Republic of the Congo',
 'waaaaayyyyy hot night 31-45 Netherlands',
 'hope school gonna good tomorrow night 31-45 Iraq',
 'care noon 21-30 Malaysia',
 'want chat im day night 31-45 Peru',
 'stupid bipolar weather ruin day morning 46-60 Afghanistan',
 'weird usual like noon 21-30 Myanmar (formerly Burma)',
 'im rc goin maintenance noon 60-70 Estonia',
 'happy mother day mum night 70-100 Burkina Faso',
 'go uk take noon 21-30 Iran',
 'happy monday lot little thing today try water plant front early jammies get caught two neighbor night 70-100 North Macedonia',
 'gettin home frm hangin herman night 31-45 Comoros',
 'oooh sound yummy get chance take pic please add website many pie morning 0-20 Afghanistan',
 'yup study least try try let stuff read enter brain permanently noon 21-30 Libya',
 'major fail since ask noon 21-30 Uruguay',
 'please everybody noon 21-30 Mauritius',
 'might get movie night week unless like really early morning lol noon 60-70 Togo',
 'hey get info graduation think mom gonna let go cp guy still wanna go noon 21-30 Luxembourg',
 'jodie um thrown van yesterday take er morning 0-20 Belarus',
 'ohhh regal man cat block morning 0-20 Greece',
 'well get mad use floor morning 46-60 Nauru',
 'welcome network buddy noon 60-70 Togo',
 'yey finally home morning 46-60 Saint Vincent and the Grenadines',
 'slept till shoot new vid today morning 0-20 Andorra',
 'way work hungry morning 0-20 Dominica',
 'day write night 70-100 South Africa',
 'overwhelm lead strawberry lemonade husband vote banana foster tho night 31-45 Guyana',
 'really cant bother go work tonigh nice stuck inside night 70-100 Madagascar',
 'ok lil happier hope fixd hope hack although seem really suspicious night 70-100 Barbados',
 'billiam fast check submit comment oh thanks night 70-100 Bahamas',
 'oh superseeded good enough noon 21-30 Iceland',
 'friday well technically really thursday dang work saturday morning morning 46-60 Greece',
 'ho naw min bug tank would stop spawn min glad get keep night 31-45 Zimbabwe',
 'hand evaluation form marketing tutee today one fill aloof condescend rest love though night 31-45 Tonga',
 'dm email addy n fwd dem ya morning 46-60 Nigeria',
 'urgh slept work still do revision im snappy today total fat day morning 0-20 Haiti',
 'paycheck nothing piece paper night 70-100 Senegal',
 'thats ok yeah good night thanks glad hope enjoy bbq noon 21-30 Malta',
 'msh gotta go tire night 70-100 Equatorial Guinea',
 'ow hurt noon 21-30 Saint Kitts and Nevis',
 'get ready go study outside fun nice sunny day night 70-100 Saint Lucia',
 'hate sick miss night 70-100 Bolivia',
 'happy mother day mommy love morning 46-60 Nauru',
 'job hunt try day nothing work bet even work cider belly morning 46-60 Guinea',
 'thanks interview mama enjoy night noon 60-70 Grenada',
 'eagle make saturday night much well morning 46-60 Egypt',
 'good morning night 70-100 Mexico',
 'head night 70-100 Peru',
 'steal stuff buries fence embarassing man return much frog morning 0-20 Rwanda',
 'honza take flight back czech republic morning really go miss noon 60-70 Kyrgyzstan',
 'wonder sanity bit dear night 70-100 Brazil',
 'pain poor hate sun morning 46-60 Georgia',
 'time get ready wrk ahhhh dnt wanna goooo night 70-100 Comoros',
 'stupid putet let go chat noon 60-70 Mauritius',
 'wish could go blogging bootcamp knoxville come week close yet far night 70-100 Equatorial Guinea',
 'apparently star war day today may th morning 0-20 Central African Republic',
 'go weekend hour exam next week prevent get uni summerball next sat though good noon 21-30 Iceland',
 'oh man rough sound like weekend go well get sleep night 31-45 Lesotho',
 'mark twain quote spot cat bugger come crime handy time noon 60-70 Cyprus',
 'fml cant loose another friend morning 46-60 Solomon Islands',
 'say hour go uwian na night 31-45 Uganda',
 'proud seriously think join next year get get training morning 46-60 Central African Republic',
 'wish could really love u around ill see try use national champ pull lol night 70-100 Mexico',
 'heeeey good luck unair sweet noon 21-30 Saint Kitts and Nevis',
 'milan retardeddddddd anyone wanna see paint pic noon 21-30 South Sudan',
 'hate morning 0-20 Egypt',
 'chillin home watch movie tv make healthified streusel coffee cake morning 46-60 Argentina',
 'also waste time til cab get spamspamspam also keiths motorbike nicked well noon 60-70 Angola',
 'mozart requiem morning 0-20 United States of America',
 'wow spam really everything cover mine almost enlargement stuff morning 46-60 Saint Vincent and the Grenadines',
 'least legal kuwait u drive suv u get ticket big smile night 70-100 Antigua and Barbuda',
 'head hurt bad could scream noon 21-30 Costa Rica',
 'yes think stay office slightly less ridiculously hot night 70-100 Morocco',
 'fantastical noon 21-30 Moldova',
 'well guess think everything thanks much keep fan loop morning 0-20 Liberia',
 'oh god end dance sob noon 60-70 Guinea-Bissau',
 'give birth screamer hate scream child guess hate scream child besides morning 46-60 Singapore',
 'ok get pink stripey one subtle bit bore floral print ok night 31-45 Algeria',
 'mean leave morning 0-20 Jamaica',
 'hi lisa beautiful pup happy mother day raven rio thor wonderfur mama kittykisses morning 46-60 Egypt',
 'spent friday saturday night workin music quit content noon 21-30 Nepal',
 'call awww wish could talk minute morning 0-20 Palau',
 'shopping latte si friday meet fau fire steet party slowmotion park party bday noon 60-70 Luxembourg',
 'patient get soon noon 21-30 Malaysia',
 'signing folk might back later night 70-100 Monaco',
 'heyy im feel good cuz wat happen yesterday car accdentt morning 0-20 Nauru',
 'miss carrot cake last night hope fun night 31-45 North Macedonia',
 'sleep jesse mccartney night 70-100 United Kingdom',
 'guy absolutely amaze tonight always thanks always bring dance party morning 46-60 Haiti',
 'volunteer syndrome indiana wednesday night 70-100 Burkina Faso',
 'say goodbye good trust friend today goodbye free sky tv best friend anyone could morning 0-20 Indonesia',
 'somebody call answer quite slowly girl kaleidoscope eye yeah im normal morning 46-60 Papua New Guinea',
 'lol wrong workin right sowwwy night 31-45 San Marino',
 'wanna go back work sleepy time morning 0-20 Nauru',
 'radio yeah feel funny cause slept enough woke mum cause sing impressed morning 46-60 Central African Republic',
 'short awesome morning 0-20 Brunei',
 'make little cover iphone bird upside back morning 0-20 Mali',
 'actually drove today incident report quote ice cube today good day night 70-100 Croatia',
 'hug able shag crush anymore x morning 0-20 Sri Lanka',
 'paid like first slightly stoopid show charge pop make morning 46-60 Micronesia',
 'eh really nice girl miss youuuuuuu morning 46-60 Lithuania',
 'definitely work sunday afternoon late even morning 0-20 Central African Republic',
 'yes get twin lock welcome twiin morning 0-20 Eritrea',
 'leave sf soon might cry morning 0-20 Tajikistan',
 'didnt research traffic beautiful system twitter approx mine grab msg sec noon 21-30 Tuvalu',
 'decide sprain mine bother never checked morning 0-20 Afghanistan',
 'plan people noon 60-70 Angola',
 'wish get fij noon 21-30 Lebanon',
 'smell like beach night 70-100 Algeria',
 'get iphone im noon 60-70 Germany',
 'fml still awake melatonin work morning 46-60 South Korea',
 'sunny atm need drop brother class later find noon 21-30 Costa Rica',
 'outta shower bad justin spend night haha night 70-100 Belize',
 'hope mom okay morning 0-20 Micronesia',
 'sooo tire cubicle night 70-100 Vietnam',
 'okay gots go first time since start miss block party night 31-45 Zimbabwe',
 'hey suck anybody im bore common answear noon 60-70 Denmark',
 'hate program freeze installation morning 0-20 Philippines',
 'able see clip episode c website america languish reading news story night 31-45 Zimbabwe',
 'pundit paid tv channel website run otherwise noon 60-70 Gabon',
 'want go work tonight night 70-100 Honduras',
 'oh get one stp x step one vhs try connect video harddrive copy dvd didnt work morning 46-60 Burundi',
 'man finish operation anchorage sure give unfair advantage love stealth field suit gauss rifle noon 60-70 Belgium',
 'josa excite look forward pic facebook morning 46-60 Serbia',
 'changedd background picnik night 31-45 Lesotho',
 'love camp fire wish kid would try bit harder sing along noon 60-70 Saint Kitts and Nevis',
 'cheese chip morning 46-60 Mauritania',
 'shall drink lot noon 21-30 Kyrgyzstan',
 'hole twitter thing new let change picture stuvk wee stpid thing night 31-45 India',
 'work leave berlin car late arrival night 31-45 Uganda',
 'yeah buy one hot minute night 31-45 Barbados',
 'make u cry noon 21-30 Holy See',
 'planet fitness van wyck keep hearing homies tell bout plus close hood u know lazzzy night 70-100 Brazil',
 'far wanna go night 70-100 Spain',
 'wanna get ff tweet night 31-45 Saint Lucia',
 'hot chocolate ugboots life good morning 46-60 Greece',
 'seriously porridge best breakfast ever need gloopy long make right morning 0-20 France',
 'get answer noon 60-70 Saudi Arabia',
 'sure use neko tix sunday night may offering someone else first know interested morning 46-60 Benin',
 'im play hooky work feel good gonna go get hair wonder fitzsimmons morning 46-60 Malawi',
 'family party night 31-45 Czechia (Czech Republic)',
 'hmmm look little methinks morning 46-60 Mongolia',
 'tell noon 60-70 Belgium',
 'found exit take thanks morning 46-60 Kuwait',
 'gym day hop enjoy last friday twenty morning 0-20 Qatar',
 'believe fast week go night 31-45 Guyana',
 'expensive morning 46-60 China',
 'jealous pour right noon 60-70 Fiji',
 'love work tell ur friend follow night 31-45 Cabo Verde',
 'back leg kill yesterday big old leak kitchen look like stay pjs day infront tv noon 60-70 Tanzania',
 'coffee turn good tiday excellent morning 46-60 Lithuania',
 'york v lancs telly go well yorkshire noon 21-30 Sudan',
 'oh trouble paradice night 70-100 Panama',
 'online morning 46-60 Egypt',
 'mufasa warrior ocean hahahahahaha noon 21-30 Grenada',
 'hectiv runny around woman goof make surprise night 70-100 Saint Lucia',
 'yeaa sad watch live performance peru etc epic wish come lol xo night 70-100 Canada',
 'need cheer noon 21-30 Switzerland',
 'say wear converse dress noon 21-30 Dominican Republic',
 'thats im make dinner yummy noon 60-70 Denmark',
 'slight headache night 31-45 Netherlands',
 'one call morning 0-20 Afghanistan',
 'morning hon breakfast cant decide night 31-45 Portugal',
 'watch rugrats anndd tweet course noon 21-30 Belgium',
 'like idea go cinema night 31-45 Croatia',
 'never write back feeling hurt night 31-45 Croatia',
 'lindsay spanish fansite love please reply u wish good flight noon 21-30 Estonia',
 'yeah hun good night ankile even tho morning 46-60 United States of America',
 'year ago brother saw bruce walk sidewalk sanibel use live pine great place morning 0-20 Georgia',
 'long morning 46-60 Belarus',
 'def want cuddle maybe play one bc far away noon 60-70 Armenia',
 'watch x men origin wolverine totally love haha noon 21-30 Tuvalu',
 'think amaze presentation whole keep review item tax thing blogher awesome noon 60-70 Estonia',
 'whataburger closing location tally harsh might transfer school noon 60-70 Colombia',
 'dont get see boy sad noon 21-30 Libya',
 'embossers expensive get one cheap try save papersource order go tonight sry bank account morning 46-60 New Zealand',
 'watch click talkin twitter celebritytweet im gonna get ready work night 70-100 Monaco',
 'word yer mother night 31-45 Ghana',
 'dunno gonna love skinny jean night 70-100 Suriname',
 'dude hax r put final cut pro tell stable noon 21-30 Costa Rica',
 'stuck huge traffic jam noon 21-30 Japan',
 'cool ok yeah see dont old file separate vocal im try punch em one track morning 0-20 Dominica',
 'exhaust great weekend look forward week noon 60-70 Iran',
 'good luck final everyone noon 21-30 Lebanon',
 'crave something salty mouth tire pretzel tho noon 21-30 Poland',
 'miss lucky edmontonians morning 46-60 France',
 'steve go paid pub night 70-100 Namibia',
 'sleep timeee want watch gossip girl way tire goodnight morning 0-20 New Zealand',
 'omg hollyoaks well dramatic morning 0-20 Trinidad and Tobago',
 'bed one day left school get go holiday yay finally get sick lol morning 0-20 Micronesia',
 'hair straight lmao night 31-45 Australia',
 'hahaha funnyy night 31-45 Niger',
 'hey morning wussup tell wut ur morning 0-20 Latvia',
 'actually also thought mother day may st remember pentecost uselessly complicate would say noon 60-70 Moldova',
 'yeah really fascinate paper credit go discovery noon 60-70 Armenia',
 'finally get money bad go bill noon 21-30 Slovakia',
 'wonderful piece cake lunch else could want noon 60-70 Denmark',
 'hurtle headlong day spanish art view tomorrow revision extra free morning 0-20 Sao Tome and Principe',
 'always feel sickly wake well get busy day ahead yippeee morning 0-20 Sri Lanka',
 'ugly programme open noon 60-70 Azerbaijan',
 'ugh hate queue noon 60-70 Luxembourg',
 'shout noon 60-70 Bulgaria',
 'finish video long night 70-100 Mexico',
 'huge spider crawl past huge morning 46-60 Trinidad and Tobago',
 'kinda sad alone time miss brother friend suck mean one even call week night 31-45 Thailand',
 'bum wear sweet nike kick work night 31-45 Bolivia',
 'make sure ur plantin next water soil night 70-100 Maldives',
 'start class today start medisoft noon 21-30 Gabon',
 'sick kid trump advance planning bummer night 70-100 Spain',
 'love head heel one fave movie look stun last night night 70-100 Bahamas',
 'cousin jail shoplift drug im upset please help feel well night 70-100 Ghana',
 'ha im ready cant believe ball call haha wtf noon 60-70 Samoa',
 ' noon 60-70 Holy See',
 'im cleaning listen fiona apple birthday party cant believe im already noon 21-30 Guinea-Bissau',
 'much surprise use credit card crack dawn serious online gamble one problem night 70-100 Saint Lucia',
 'awlll mann meet summa something morning 46-60 Austria',
 'thanks feedback surreal life surreal oil night 70-100 Laos',
 'yikeysss harmless really want attention brody noon 21-30 Poland',
 'omg spit drink rip hair straightener noon 60-70 Iceland',
 'cup cake sooo yummy would coffee chaser u know lead night 70-100 Cabo Verde',
 'back home tallcree rez cant see boyfriend morning 0-20 Ethiopia',
 'somebody smuggle sydney slave eternity morning 0-20 Kuwait',
 'happy mothrs day thaa mom outt thr noon 60-70 Dominican Republic',
 'book ticket jessicaaaa noon 21-30 Cyprus',
 'know right weak g seem like sk think latonya lamesauce call morning 46-60 Burundi',
 'school today greeeeeat noon 60-70 Kenya',
 'degree gross sky match mood lol noon 21-30 Seychelles',
 'go see wolverine lil bit excite noon 60-70 Israel',
 'think pretty awesome could quote lotr rotk one summer anymore morning 46-60 Brunei',
 'blue lol night 70-100 Burkina Faso',
 'get back home first exam long time finish morning 46-60 Kuwait',
 'ask mum bout go tommorow laugh face lmao noon 60-70 Bangladesh',
 'good morning since talk keep awesome tweet morning 46-60 Liberia',
 'see ya noon 60-70 Cameroon',
 'seem like person postal voting upcoming election already twice get document night 70-100 Equatorial Guinea',
 'unfortunately u look like funny people twitter move fb start night 31-45 Antigua and Barbuda',
 'go watch supernatural shall return afterwards night 31-45 Canada',
 'sad cuz mommy leaf indy today night 31-45 Bahamas',
 'time bed noon 21-30 Belgium',
 'good afternoon hope great week noon 21-30 Belgium',
 'yeah suspicion think go come home want spend ton money tool noon 21-30 Gabon',
 'justin timberlake totally rock snl tonight ooh happy mother day another hallmark mkting tool noon 60-70 Germany',
 'yep tomorrow night saw ad squeal love season noon 60-70 Germany',
 'least make night 31-45 Laos',
 'storysize post short story one liner show news friend see wall night 31-45 Czechia (Czech Republic)',
 'everybody already noon 21-30 Mauritius',
 'night night dolly al amaze morning 46-60 Trinidad and Tobago',
 'wish work morning 0-20 Central African Republic',
 'ugh go new phone screen black mean texting morning 46-60 Brunei',
 'tire tweeter noon 60-70 Samoa',
 'today go way plan early lunchbreak may back til mon weekend gonna fun friend tho night 70-100 Belize',
 'eat bagel yummy morning 46-60 Egypt',
 'heyy noon 60-70 Botswana',
 'small thing life count like blur photograph google keep follow morning 0-20 Mauritania',
 'wish guy gotten video night 70-100 South Africa',
 'watch parental control morning 46-60 Egypt',
 'bow glad service noon 21-30 Japan',
 'guten morgen good morning night 31-45 Pakistan',
 'feel love mom get nikon cool pix birthday morning 0-20 Sweden',
 'jeff look long last love like men noon 21-30 Denmark',
 'wanna karaoke get go work lameness night 31-45 Liechtenstein',
 'new friend please comment morning 0-20 Yemen',
 'bai kt decide disney wedding parade mushroom trampoline float kt bai jump noon 21-30 Slovakia',
 'annoyed overwhelmed noon 60-70 Malaysia',
 'sound fun night 70-100 Czechia (Czech Republic)',
 'oops drunken stupor lol ima check morning 0-20 South Korea',
 'apparently request guest night 70-100 Maldives',
 'rain belfast promise would clean window today back bed morning 0-20 Yemen',
 'mueller yes love little bit complicate want bb doesnt work night 70-100 Australia',
 'bore tire get headache morning 0-20 Austria',
 'help make twitter account morning 0-20 Hungary',
 'excite tonight party ron night 31-45 Honduras',
 'make night way funny noon 60-70 Uruguay',
 'make sister cry hahah bless hope noon 21-30 Iran',
 'v haha boat pick time night 70-100 Equatorial Guinea',
 'simmons everyone mistake make lesson learn let negativity get night 70-100 Gambia',
 'mmm comfort junk food sound good always prefer wingstop morning 46-60 Andorra',
 'register able buy pre presale next year saturday gonna mayhem internet wake early girl night 31-45 Maldives',
 'want say best screen name ever morning 46-60 Saint Vincent and the Grenadines',
 'sadly stanley steemer number night 70-100 Bahamas',
 'oh good top haunt house sound one bakery inside ralphie body forget noon 60-70 Libya',
 'u point point yesterday ppl wait til midnight kinda piss night 70-100 Syria',
 'yes one final party well make good one much mpre stuff get go morning 46-60 Kazakhstan',
 'thanks warm welcome make plan arrival time air noon 60-70 Zambia',
 'get bouquet flower mom hehehe sweet noon 60-70 Togo',
 'work except use word autofollow get follow bot sell autofollow program night 70-100 Zimbabwe',
 'hello im back andim drunk much asi love friend hate unintentionally make feel morning 0-20 Bahrain',
 'ur lucky stage close theem think dangerous noon 21-30 Iran',
 'joy entirely possible morning 0-20 Bosnia and Herzegovina',
 'get ready skill wait fail bio final yay ugh honor class suckkkk night 70-100 Brazil',
 'd die whatta letdown night 70-100 Peru',
 'thanks concern guy stitch later well whew night 31-45 Slovenia',
 'mtn dew mini fridge noon 21-30 Grenada',
 'prd take long time review morning 46-60 Bosnia and Herzegovina',
 'friend ent industry say really really good hopefully convince wife date night hhrs night 31-45 Ecuador',
 'go hairdresser today cutted hair love long hair dad say even see get haircut laaame night 31-45 Morocco',
 'twitter question go brother st soccer game season stay warm bed minute reply morning 46-60 Palau',
 'kinda want smack darn skeleton though noon 60-70 Iran',
 'beautiful morning nice night 31-45 Laos',
 'search wavy hairstyle night 31-45 Thailand',
 'sleep happy fugees keep company morning 0-20 Sao Tome and Principe',
 'shower time noon 21-30 Cyprus',
 'want morning 46-60 Liberia',
 'really go chiropractor week today neck hurt bad noon 21-30 South Sudan',
 'wanna go prom one day wish u go prom even though im thatwouldmake myfriends happy morning 46-60 Bosnia and Herzegovina',
 'maybe cause look innocent noon 60-70 Samoa',
 'hmmm go sleep saturday work watch episode one tree hill one tree hill think morning 46-60 Sao Tome and Principe',
 'never answer night 70-100 Ghana',
 'put societe generale china interest stuff away much gotta fix night 31-45 Netherlands',
 'heck haha lol english work doo college night 31-45 Suriname',
 'drop baby st day toddler room officially toddler grow way fast night 70-100 Australia',
 'thanks retweet man quiet sunday morning 46-60 Argentina',
 'much learn noon 21-30 Angola',
 'try go sleep luck think morning 46-60 Mali',
 'might interested thanks come saw much like flatland night 70-100 Namibia',
 'hi im barb frm ia new tweetin enjoy reading ur tweet u seem like wonderful know ur wonderful actress night 70-100 San Marino',
 'sorry tweet bgt poor wonderful crazy weird greg fair silly little girl never go cope urgh fair noon 60-70 Estonia',
 'ugh sittin work wait carpet clean suppose morning 46-60 Argentina',
 'woken feel little dont thing drink bar dry card finally sober home time think noon 60-70 Venezuela',
 'hehe yeah late hun noon 60-70 Guinea-Bissau',
 'congratulation win indie award noon 21-30 Israel',
 'dilemma wear sanfran foggy sacramento cple hr sun degr noon 21-30 Seychelles',
 'go boo pad night 70-100 Senegal',
 'thanks unfortunately eu probs satellite provider even though tv look great basically useless night 70-100 Cabo Verde',
 'matey noon 60-70 Azerbaijan',
 'thank think u care morning 0-20 Eritrea',
 'da time gtalk pls make follow count morning 46-60 New Zealand',
 'oh gosh love noon 21-30 Armenia',
 'yes found come greenville perfect weekend picture sidekick go shoot morning 46-60 Latvia',
 'bad day get night 70-100 Equatorial Guinea',
 'salary actually spend money hooray time go shopping dinner ahora say goodbye morning 46-60 Burundi',
 'love story loop past minute love make happy like night 70-100 Australia',
 'n noun ikr parent take cake tho grocery shop go eat time night 31-45 Iraq',
 ' noon 60-70 Seychelles',
 'try help night 70-100 Bahamas',
 'everything near sg point sana hindi sa jurong east ang office ni noon 21-30 Botswana',
 'bed gonna read new moon little late night night noon 21-30 Nicaragua',
 'need education night 70-100 Madagascar',
 'guitar herew yet feel like lose limb noon 21-30 Lebanon',
 'feel sad dont goodbye z noon 60-70 Moldova',
 'oh read go remake girl wanna fun stop hollywood stop noon 21-30 Iceland',
 'work play noon 21-30 Estonia',
 'yes minute night 31-45 Maldives',
 'cantus hear coffee brewing end noon 21-30 Tanzania',
 'love mine happy mother day mom john taylor much love morning 0-20 Cuba',
 'anyone else bad friday fun day today night 70-100 Djibouti',
 'hobo morning 46-60 Liberia',
 'much willkommen im twitterland morning 0-20 Bosnia and Herzegovina',
 'precisely follower important feel explains bit night 70-100 Turkey',
 'go lay get officially yes lol good night morning 0-20 Trinidad and Tobago',
 'swear dog anxiety issue noon 21-30 Kyrgyzstan',
 'thanks info night 70-100 Lesotho',
 'found thro mama morning 46-60 Nigeria',
 'go sadly maybe next year eh noon 21-30 Belgium',
 'nvr want may come end night 70-100 Morocco',
 'ok hit point head bed sleep well happy mother day mom night noon 21-30 South Sudan',
 'play sudoku mommy make breakfast lunch night 31-45 United Kingdom',
 'magician yes apnea prob med might cause help otherwise much want stop noon 60-70 Fiji',
 'crush guy job name tyler eye blue mesmerize cool nite noon 60-70 Myanmar (formerly Burma)',
 'want dm back cuz follow thanks anyways maybe ill see ya around elle ay morning 46-60 South Korea',
 'wish feel hold potential cold bay day think cough night 70-100 Ecuador',
 'apply osap yet god gonna owe major end academic career right noon 60-70 Angola',
 'knack iphone get melt chocolate speaker hear ring night 70-100 Brazil',
 'today soo fun happy bday chrissy night 31-45 Panama',
 'kid get second chance shudnt mowgli didnt gutted morning 46-60 Andorra',
 'doctor finish noon 21-30 Saint Kitts and Nevis',
 'omfg head morning 0-20 Brunei',
 'yw get really hot middle summer like right perfect less hour away night 31-45 Portugal',
 'definitely need work business trip much free food alcohol sure gain pound night 70-100 Sierra Leone',
 'attend matthew senior day recognition ready noon 21-30 Kenya',
 'coffee hand sun shin window hope everyone great monday morning far monday mr night 31-45 Jordan',
 'stop twitter maryland cooky bgt morning 46-60 Singapore',
 'oh love texting drunk friend hahahaha night 70-100 Barbados',
 'watch game make popcorn night 31-45 Bolivia',
 'read sure would want opinion night 31-45 Pakistan',
 'shall win morning 46-60 Austria',
 'night twitter lovely happy yo momma day luff mummy noon 60-70 Gabon',
 'weekend quiet planning new website today research choose hat coffee hat sound good though kettle night 31-45 Senegal',
 'back know misunderstood see thru ur eye u love mama love noon 60-70 Iceland',
 'neither could look ebay like euro two doubt parent would fork amount night 31-45 Equatorial Guinea',
 'make fun call guy noon 60-70 Bangladesh',
 'lovato oh see thanks reply anyway morning 46-60 Cambodia',
 'sit desk wish thing different noon 21-30 Holy See',
 'aaaaaahhhhhhhh soooooooo sweeeeeeet miss age soooo much noon 21-30 Libya',
 'one yet hopefully ponying one soon definitely hit wall night 70-100 Uzbekistan',
 'uppercut old man thing say noon 21-30 Moldova',
 'visit ny til september diggnation morning 0-20 Norway',
 'ugh go town never rest want go tyler know get back exausted noon 60-70 Oman',
 'want call would cost much maybe parent say okay noon 21-30 Japan',
 'stop follow cool enough morning 46-60 Kuwait',
 'like dr seuss quote know love fall asleep reality finally well dream night 31-45 Morocco',
 'finish minish cap great game miss ezlo link noon 60-70 El Salvador',
 'nobody home tonight except alone sigh oh wish night 31-45 Zimbabwe',
 'twitter kinda confuse fun night 31-45 Burkina Faso',
 'im dreamin loud cant mine know noon 21-30 Saudi Arabia',
 'get nothing witty tweet night 31-45 Iraq',
 'actually think na release date confirm september bit wait night 70-100 Sierra Leone',
 'sleppytime really miss godfather right love wayne noon 60-70 Malta',
 'super keen drive home additional concentration require really wanna deal noon 60-70 Denmark',
 'tempe marketplace wait see star trek noon 21-30 Palestine State',
 'ooh cut like noon 60-70 Dominican Republic',
 'well get real clear shot get best people walk admit noon 60-70 El Salvador',
 'oops shouldnt morning 0-20 Palau',
 'jungle book mary poppins bug life depend want cartoon live action cgi night 31-45 Morocco',
 'wonder married night love noon 60-70 Togo',
 'happy mother day watch snl u miss hoot jimmy fallon night 31-45 Comoros',
 'doin thing watch star yup morning 0-20 Andorra',
 'key crack kind miss old phone already night 70-100 Niger',
 'really least u wont hav put wiv noon 21-30 Lebanon',
 'money sign ugh night 31-45 Kiribati',
 'say number good left white blood cell count morning 0-20 Sri Lanka',
 'happy mom day everyone u morning 0-20 Tajikistan',
 'big bos small yay free lunch office today big yay noon 21-30 Somalia',
 ' night 31-45 Vietnam',
 'play left dead friend gilbert louie fun happy mother day mom morning 0-20 Solomon Islands',
 'nooo poor cat want food hard tell morning 46-60 Kuwait',
 'roflmao funny web portal morning 0-20 Indonesia',
 'im tire miss dionee already morning 46-60 Kuwait',
 'look like freak tomato goin noon 21-30 Bhutan',
 'moral support student night 70-100 Madagascar',
 'finally bed must say quite even ready tackle work week see next weekend store night 70-100 Pakistan',
 'get home hospital far noon 60-70 Cameroon',
 'plz dont fall love tokyo never come home noon 60-70 Moldova',
 'like saw movie would give tyler perry noon 60-70 El Salvador',
 'probably go thing night 31-45 Italy',
 'caruso take polish nail finger door handle murder earlier noon 21-30 Israel',
 'tgif much work weekend noon 60-70 Malaysia',
 'woo hulu desktop poor mac kinda struggle though poor little core duo keep night 70-100 Eswatini (fmr. "Swaziland")',
 'followfriday thank still even close noon 21-30 Malta',
 'house bust house smell like bowling alley maaad gross house need new roof basement noon 60-70 Albania',
 'wow emc new site different noon 21-30 Botswana',
 'gross haha like tiniest piece ever taste like ate whole onion eww morning 46-60 Vanuatu',
 'finally chance show genuine love dependent selfish love hope heart go sorry ur pain morning 46-60 Philippines',
 'basil highlight day old man lecture greatness telegraph idiot noon 60-70 Venezuela',
 'never mind close sorry miley night 31-45 Chile',
 'andrew idea rest think ben princeton could fun lol go late noon 60-70 Albania',
 'felt sorry people really harsh co give nd chance night 70-100 Turkey',
 'heart mela much cept last time go book u saturday instead friday feed u night 31-45 Comoros',
 'warm noon 21-30 Colombia',
 'wave back good day night 70-100 Chile',
 'happiness morning 46-60 Argentina',
 'yep mother day well family ignore celebrate every day lol morning 0-20 Qatar',
 'aw name car sweet sorry hear petey go hope find really posh rollerskate morning 0-20 South Korea',
 'like last part methodology morning 46-60 Greece',
 'great great cookoutofthecentury wife tummy hurt great night 31-45 Uganda',
 'hello morning 46-60 Palau',
 'way work gonna miss general hospital morning 0-20 Egypt',
 'window noon 21-30 Iran',
 'go di bella coffee roaster today ask person need speak fb night 31-45 Namibia',
 'sick girl try shake thing luck miss long night 70-100 Vietnam',
 'oh hope bad sound night 70-100 Kiribati',
 'im scott fatty morning 46-60 China',
 'right ducky thanks big help wrap write morning 0-20 Indonesia',
 'sweet b yeah mate g town jus sed blue martini tha spot ill check good lookin noon 60-70 Belgium',
 'recommend white chocolate move dark side night 70-100 Guyana',
 'thanks follow night 31-45 Tonga',
 'call telephone know new technology way forward morning 46-60 Eritrea',
 'hang amber morning 46-60 Indonesia',
 'use nkotb sleep bag know noon 60-70 Malta',
 'yay save weve overcome god morning 46-60 Malawi',
 'haha happy mother day noon 21-30 Montenegro',
 'look forward spending time mom today noon 60-70 Seychelles',
 'well bell hook teach transgress sometimes miss teach mess bad system night 31-45 Australia',
 'feel dpressed morning 0-20 Nauru',
 'get hair shortly hop everything go well friend currently get surgery noon 60-70 Cameroon',
 'pot geranium talk grandkids well maddie jack outside play sure miss em noon 21-30 Guinea-Bissau',
 'get im another co worker get laid lot people become unemployed morning 0-20 Qatar',
 'work ready go night 70-100 Algeria',
 'realize today last day see best friend tanner im goin miss much noon 60-70 Samoa',
 'ever since orchid quit drinking bottle eat u house home holy girl still drinking milk though noon 60-70 Nicaragua',
 'downside though break thread morning 46-60 Papua New Guinea',
 'hello like little chat dm mail id noon 21-30 United Arab Emirates',
 'thought ur account fake true sorry david noon 60-70 United Arab Emirates',
 'heidi finish set stiff kitten aundy night 70-100 Marshall Islands',
 'hey oprah watch show hugh jackman love sexy morning 46-60 Palau',
 'know want come bec excite bec gonna go fast noon 21-30 Zambia',
 'watch miss piece coz theme song lose without noon 60-70 Grenada',
 'amason seem think hamburger go go get till october well noon 60-70 Japan',
 'learn jerk stanky leg sunset cliff headlight spotlight colorado fam night 31-45 Guyana',
 'wish could get nail do stupid job noon 21-30 Bangladesh',
 'dark berry mocha try everyone let pas morning 46-60 Austria',
 'twitter criado morning 46-60 Brunei',
 'old enough know well young enough care night 70-100 Uzbekistan',
 'look like another sleepless night dedicate homework sorry advance m chapman morning 46-60 Liberia',
 'lil sad bc wont able toeat hot dog big kahuna cookie sandwich ranger game tonight noon 21-30 Grenada',
 'im friend anyone anymore noon 60-70 Kyrgyzstan',
 "school boring noon 21-30 Côte d'Ivoire",
 'esl doubt wash separately normal concern something fading onto white morning 46-60 Benin',
 'im dont get noon 60-70 Angola',
 'doesnt want exam next week morning 0-20 South Korea',
 'there nothing like pillow morning 0-20 Andorra',
 'good morning hope everyone well monday thanks followfriday recos bless morning 0-20 Philippines',
 'wait get back nambu stop work noon 60-70 Seychelles',
 'u ever friend u wonder friend know get question get u night 31-45 Liechtenstein',
 'hadnt cry long time morning 0-20 Belarus',
 'clp heard db well mix use sound noon 60-70 Azerbaijan',
 'ok woke need get ready day get twitterena submit night 31-45 Uzbekistan',
 'gloomy day stop bliss hope ronaldo score derby match today morning 46-60 Lithuania',
 'think big size think determines size result bob proctor great advice night 31-45 Vietnam',
 'sad assembly next block night 70-100 Italy',
 'new baby arrive yesterday fab baby boy kilo proud happy noon 21-30 Colombia',
 'sad miss guy last night morning 46-60 Ukraine',
 'sleepy night happy mother day mother mama mommy whatever call lol mie noon 60-70 Costa Rica',
 'pretty tame guy voyager style medical uni disappointed costume noon 60-70 Estonia',
 'two page assignment weekend go chance relaxation night 31-45 Burkina Faso',
 'feel home back church night 31-45 Croatia',
 'anderson hehe fun tweet morning 0-20 Dominica',
 'get skyfire firts impression look good little memory hungry age htc tytn night 70-100 Thailand',
 'hour since dog put sleep rip old friend night 31-45 Algeria',
 'tall ups down leg pain night 70-100 Niger',
 'hope fun tonight noon 21-30 Uruguay',
 'hope good flight noon 21-30 Japan',
 'like smell roast oven mmmmmm must dip sakatas tide till roast cooked noon 60-70 Azerbaijan',
 'hahahahaha u look really good ur picture morning 46-60 Latvia',
 'come garden warm beautiful didnt much revision though night 31-45 Saint Lucia',
 'suppose visit austin feel well since vaca would say hello sure noon 21-30 North Korea',
 'sit bed want go work morning 0-20 Trinidad and Tobago',
 'im fail algebra hard morning 0-20 Haiti',
 'fog delay sfo leave yet morning 0-20 France',
 'sunset view beautiful room noon 21-30 Poland',
 'girl ya gotta let know get kit together get flyer next weekend night 31-45 Italy',
 'whenever whever sarah dc summer sure night 70-100 Panama',
 'walmart opening first store amritsar tomorrow place limited wholesale noon 21-30 Cameroon',
 'phone pass away jumped table search new noon 21-30 Bulgaria',
 'alone night 31-45 Italy',
 'kap think cute every night okay night 70-100 Honduras',
 'thanks add glad night 31-45 Canada',
 'want talk call expensive love morning 0-20 Brunei',
 'haze aww sorry ray wise appear show yet watch everyday except friday best aots morning 46-60 Philippines',
 'think lamb chop would really nice right maybe sushi maybe ice lolly co hot morning 46-60 Lithuania',
 'happy birthday keshia keshia bo beshia morning 46-60 Liberia',
 'get brace tighten today get mcdonalds haha sport tomorrow yay yay yay netball wish luck make team l night 31-45 Morocco',
 'wont work uk noon 21-30 Japan',
 'oooooooooo say dancin home count morning 0-20 France',
 'get new prom dress night 31-45 Guatemala',
 'apple wana take bite morning 0-20 Andorra',
 'dark outside noon 60-70 Costa Rica',
 'rent bike unknown trail random bump big hill kid one beat little girl good day b family vacation noon 60-70 United Arab Emirates',
 'blink fast well lol thanks morning 0-20 Timor-Leste',
 'boarding us warp speed ahead fb night 31-45 San Marino',
 'ear pop night 70-100 Barbados',
 'travel blog run wait start fill entry night 70-100 Antigua and Barbuda',
 'awww suck awesome get one squeeky happy one left though night 70-100 Madagascar',
 'cloudy day berlin right sit front computer day night 70-100 Belize',
 'x little taylor feel sorry way spell name noon 21-30 Switzerland',
 'urgh really hate medicine morning 0-20 Turkmenistan',
 'impossible know closely night 31-45 Pakistan',
 'japanese exchange student cutest thing ever see seriously haha want put pocket keep night 31-45 North Macedonia',
 'nice meet tonight thanks night 31-45 Mexico',
 'update maven dependency know good thing would well happen asleep morning 46-60 Mozambique',
 'rain one reason stay snuggle beneath duvet morning 46-60 Brunei',
 'everybody need time thier gun n rose x z kz noon 21-30 El Salvador',
 'good star war day fonz day dance taco day whatever celebrate good noon 60-70 Venezuela',
 'bout go work morning 46-60 Democratic Republic of the Congo',
 'hahah okay thanks short explanation morning 46-60 Bahrain',
 'way work wish day night 31-45 Syria',
 'gossip girl pizza way thank lil babe morning 0-20 Ireland',
 'uff hard get go today half night year old son morning 0-20 Cambodia',
 'aww sweet morning 0-20 Afghanistan',
 'non www fail work noon 60-70 Azerbaijan',
 'go see grandad today morning 0-20 Sri Lanka',
 'gotta go go circus real circus britney tour sadly night 70-100 Canada',
 'honi might cute little picture book call little book boring night 31-45 Thailand',
 'thanks link geoff noon 60-70 Saudi Arabia',
 'kidney stone really ugh night 31-45 Belize',
 'hungry noon 60-70 Botswana',
 'good role like yinz think morning 0-20 Mongolia',
 'thanks check next time target hour away noon 60-70 Iran',
 'cancel javaone night 31-45 Namibia',
 'good luck want new shoe ly x noon 60-70 Kenya',
 'project suck night 70-100 Brazil',
 'darline miss noon 60-70 Slovakia',
 'gah realize meeting night 31-45 Canada',
 'awww hate wen family brokun humuns maybee see agin wun day noon 60-70 Iran',
 'yup pretty sure summer could start well one year night 70-100 Sierra Leone',
 'good morning guy dont forget today mother day mommy love best morning 46-60 South Korea',
 'u copy wot write hmm noon 21-30 Costa Rica',
 'guy call come something def give u call tomorrow hang u chick night 70-100 Tonga',
 'anyone want really awesome buy one birthday night 70-100 Uganda',
 'give noon 60-70 Dominican Republic',
 'end face face bear drive home even sadly take wood haul cameraphone night 31-45 Finland',
 'love listen people practise piano downstairs morning 46-60 Brunei',
 'movie pretty interest actually gonna finish watch probably see star trek tomorrow zq lol noon 21-30 Palestine State',
 'hey dont know use noon 60-70 Tanzania',
 'heater room day school boil night 31-45 Peru',
 'sit nan bathroom die hair x factor audition tomorrow night 31-45 Barbados',
 'get back school shemms summer class officially end night 31-45 Marshall Islands',
 'think pas worm haha good morning noon 21-30 Samoa',
 'oh see like morning right happy breakfast thumb night 31-45 Saint Lucia',
 'happy mother day noon 21-30 Israel',
 'believe come near place get love jenny noon 60-70 Fiji',
 'oh think live lifespan morning 46-60 United States of America',
 'song slap face jib noon 60-70 Palestine State',
 'dulay swear take hour get bel air alabang yes love reminisce hk trip night 70-100 Uzbekistan',
 'eat organic jelly bean noon 60-70 Montenegro',
 'watch th harry potter movieee night 70-100 Guyana',
 'poolside bowling toniht maybe back work tomorrow night 70-100 Niger',
 'happy mother day night 31-45 Turkey',
 'gonna dream prince charm tonight n see everything go back normal really hope morning 46-60 Argentina',
 'pitman south look like business bad noon 60-70 Uruguay',
 'teddy chuck time noon 60-70 Azerbaijan',
 'go see long noon 21-30 Bhutan',
 'feel really sick watch fifth element smoke cigg ugh hate cold night 31-45 Madagascar',
 'say livejournal bee eye tee see hedge dum dee dum ok back work morning 0-20 Afghanistan',
 'new toy noon 60-70 Samoa',
 'waitin tell plan night 70-100 Mexico',
 'understood pre coffee tweet good noon 60-70 Somalia',
 'ac get instal today morning 0-20 Haiti',
 'greg show friend audioboo everyone seem love ta headzup bro need get iphone roll june noon 21-30 Seychelles',
 'adobe effect m sql would nicer sleep morning 46-60 Nauru',
 'sound like get fan danstorce morning 0-20 Micronesia',
 'inspection go fine like house woopee would nice morning could do stuff today noon 60-70 Dominican Republic',
 'drat land boot die think boot like parsley one go seed first season noon 60-70 Tanzania',
 'aint get money buy cred call u london noon 60-70 Costa Rica',
 'need see someone buy plane ticket please night 70-100 Equatorial Guinea',
 'great day beach bbq old friend crazy old enough old friend learn play texas holdem morning 46-60 Yemen',
 'follow joe cool noon 60-70 Armenia',
 'decaf tea late never coffee id fly around room justin timberlake host funny sketch w samberg morning 46-60 South Korea',
 'ugh boring day night 70-100 Russia',
 'please give shout boyfriend ron griffin pm show denver nosebleed really shout night 31-45 Italy',
 'well donkey appeal sure night 70-100 Maldives',
 'aww man left laffy taffy work night 70-100 Burkina Faso',
 'add dunkin donut menu morning 0-20 Cambodia',
 'could ever actually allow stay night 31-45 Djibouti',
 'love available pm dear would love help convert night 31-45 Czechia (Czech Republic)',
 'oh hope baad tell mya hope get well soon noon 60-70 Sudan',
 'dizzy wanna lie die calorie gonna balk ignore night 31-45 Antigua and Barbuda',
 'hope find store take u morning 46-60 Nauru',
 'get back meal boring eat nonetheless noon 21-30 Zambia',
 'nope think thnx ask lol fine morning 0-20 Ukraine',
 'pretty happy thing change past best night 31-45 Iraq',
 'never get etown however morning 0-20 Sao Tome and Principe',
 'hi rob morning 46-60 Philippines',
 'leave calcutta delhi lucknow day absence noon 60-70 Guinea-Bissau',
 'greaaat minee pleaseeeeee night 70-100 Cabo Verde',
 'ugh lose remote gotta actually move change channel wtf morning 0-20 Norway',
 'ay buti pa kayo uy thank night 70-100 Madagascar',
 'lovely hubby spray tan back leg hopefully look like allsort much longer night 70-100 Barbados',
 'yeah tragic need haircut noon 21-30 Libya',
 'agree w u noon 21-30 Malta',
 'happy mothersday btw look bright side chill day today night 31-45 Niger',
 'reason even go haha shaun dead epic haha noon 21-30 Fiji',
 'hi anybody else problem karma site work night 31-45 Panama',
 'nope het lose found morning 0-20 Andorra',
 'hello thereeeeeee morning 0-20 Burundi',
 'think pay end morning 46-60 Lithuania',
 'look matter ethnicity woman something else fella get amen dueces morning 46-60 Lithuania',
 'true discretion nice also help far turn morning 46-60 Indonesia',
 'guess find shortly noon 21-30 Seychelles',
 'oh il probs wt every yaer watch first one watch last couple week lol noon 60-70 Japan',
 'stomach hurt morning 0-20 Nauru',
 'hope weekend fabulous anything interest noon 21-30 Bangladesh',
 'time nerd noon 60-70 Moldova',
 'ready mother day noon 60-70 Holy See',
 'sad sad sad thought aunty stina come look forward miss dat alone maui night 70-100 Portugal',
 'circus fun hope get parking lot move min noon 21-30 Luxembourg',
 'well see soon night 31-45 Guatemala',
 'get sunburn arm well news new guitar hero metallica game come beyond happy noon 60-70 Palestine State',
 'sooo tire busy tweet im glad weekend yay day weekend night 31-45 Gambia',
 'tweetdeck lose old reply night 70-100 Croatia',
 'shakalohana week two flat wavez surfin night 70-100 Monaco',
 'guy stupid idea good girl actually care sad noon 60-70 Tuvalu',
 'stood might well go work morning 0-20 Rwanda',
 'ugly girl always insist make ugly face ugh night 70-100 Chile',
 'get bitten rabies infest person last night yay gonna scare rachel quarantine tonight shall fun noon 21-30 Luxembourg',
 'ty much ff night 70-100 Peru',
 'yay think found morning 0-20 Sao Tome and Principe',
 'feel kinda miss wait grad weekend morning 0-20 Andorra',
 'ooh milan could holiday bfoyf geneva today visit fam ive get weekend night 70-100 Brazil',
 'awww bad entertain thought enter morning 46-60 Benin',
 'mcfly evolution th time round night 31-45 Barbados',
 'preorder razer sphex ship today pay review razer ignore email noon 60-70 Switzerland',
 'yep tail leg morning 0-20 Andorra',
 'checkin get fever cnt sleep noon 60-70 Saudi Arabia',
 'natalies finish work amaze peanut butter sandwhich ever miss faceeee night 70-100 Marshall Islands',
 'rather outdated bigoted bad outdated patronise imperialist monoculturalist self righteous best noon 21-30 Denmark',
 'school rusty put oh love ipod awh night 31-45 Ghana',
 'dude saw twitter profile long time love background way way cool noon 21-30 Bulgaria',
 'day fkn ugly match mood unfortunatly time blast moon morning 0-20 Liberia',
 'soo still kinda angry miss concert noon 60-70 Moldova',
 'drive past tattered cover w stop promising make time next week noon 21-30 Japan',
 'tease desperate need adjustment morning 46-60 Sri Lanka',
 'heckitty forget one morning 0-20 Mongolia',
 'software use design site c student currently hard code everything fast noon 60-70 Fiji',
 'greeeeeeeeeeeat summer four know know night 31-45 Comoros',
 'somebody accidentely sleep hour instead hang work blow sorry jones night 70-100 Brazil',
 'rice ready watch comet important music price n lisa arrives around still hour noon 60-70 Montenegro',
 'still shoesless que ardillaaaaaaaaaaaa night 31-45 Saint Lucia',
 'make real life ever level people comfortable morning 46-60 Bosnia and Herzegovina',
 'hahaha secret door real batcave night 31-45 Maldives',
 'decide study finger throat make gag noise hate mf noon 21-30 Venezuela',
 'someone make morning 0-20 Dominica',
 'see date show good time still want stripper picture night 70-100 Slovenia',
 'wake morning way morning 0-20 Serbia',
 'love knw gna cut stuff tv night 70-100 Burkina Faso',
 'work away hopefully stay nice afternoon even possible bbq weather noon 60-70 Montenegro',
 'whohoo erin get accepted ottawa u nursing school algonquin pembroke campus may get girl back morning 46-60 Bosnia and Herzegovina',
 'happy mother day morning 46-60 Philippines',
 'sunburnt gutted hope fade tmw night 70-100 Turkey',
 'get school goin cinncinatti wednesday morning 0-20 Sweden',
 'walk water annapolis froyo shoe noon 21-30 United Arab Emirates',
 'awe feel left noon 21-30 Nepal',
 'store lol liquour morning 46-60 Yemen',
 'alicev none house sure drive coffee stand bad thought would noon 21-30 Chad',
 'say good morning everyone happy mother day mother hope noon 60-70 Palestine State',
 'ahh fun work last night party go movie today see wolverine good weekend morning 46-60 Bosnia and Herzegovina',
 'slept late noon 60-70 Zambia',
 'someone edit design call plagiarism right tire exhaust dissapointed night 31-45 Slovenia',
 'gonna go yoga ing jumbo cup coffee think make happy night 31-45 Tonga',
 'day day shred day special k feel fantastic morning 0-20 Ireland',
 'boring bad weather today watchingn alias fun boyfriend morning 46-60 Cambodia',
 'lol teach blindly trust amazon search result without reading noon 21-30 Estonia',
 'break rule take tension night 70-100 Kiribati',
 'okay long right night 31-45 Bahamas',
 'hey chick go ja pick hot guy eat jerk pork festival well already hot guy morning 0-20 Haiti',
 'eat funnel cake mag fest morning 46-60 France',
 'justcause summer hour say day end mean really get leave noon 60-70 Bhutan',
 'hey gi look pic frankie take southend gig morning 0-20 Georgia',
 'want smoke cig lighter morning 46-60 Singapore',
 'something like morning 46-60 Democratic Republic of the Congo',
 'yes non test condition morning 46-60 Tajikistan',
 'help morning 46-60 Mongolia',
 'class almostt night 31-45 Burkina Faso',
 'tempt buy mac though need want try dazzleglasses noon 60-70 Venezuela',
 'see cry lol night 70-100 Pakistan',
 'hope fab time saw twitpics love wore dress great pic noon 60-70 Moldova',
 'never make gym blowout sans thong wear company phew bummer miss workout noon 60-70 Mauritius',
 'korean dvd need night 31-45 Marshall Islands',
 'bed hot date sudoku maybe chapter two reading stay awake long great night tweeps night 70-100 Tonga',
 'found minute ago mama say speech still slur seem ok night 70-100 Monaco',
 'bought beer today noon 60-70 Luxembourg',
 'never morning 0-20 Solomon Islands',
 'thank dedication lamb unparalleled also true lamb dedication unparalleled morning 46-60 China',
 'yay playdate back van transmission dead noon 60-70 South Sudan',
 'never cease amaze morning 0-20 Tajikistan',
 'ohh love green black night 70-100 Ghana',
 'rise romance release thursday gonna get bps noon 60-70 Myanmar (formerly Burma)',
 'cant wait prom prom party friday noon 21-30 Chad',
 'friend us logic must admit like mac night 70-100 Guatemala',
 'mother bad day night 31-45 Guatemala',
 'knew horse call dollar night 31-45 Peru',
 'hello twitter noon 60-70 Estonia',
 'well suck good way make feel bad morning 0-20 Solomon Islands',
 'wow atleast u three two month go u go away noon 60-70 Kenya',
 'sorry lol think mum would still let bday stuff weekend noon 21-30 Switzerland',
 'tweetie use yfrog think chance add client image view night 31-45 Belize',
 'kayyy xd yeah everyone always talk part dog dy need find movie see xd night 70-100 Namibia',
 'definition senioritis go chem ii calculus good class feel like slackin night 70-100 Uganda',
 'congrats dreps good luck sa interview noon 21-30 Luxembourg',
 'carter video set night 70-100 Uzbekistan',
 'almost say bless sneeze cat noon 60-70 Tuvalu',
 'make baby jeebus cry noon 21-30 Iceland',
 'suck u go id b piss night 31-45 Barbados',
 'nothing let stay quiet together p cry night 31-45 Mexico',
 'seriously increasingly good night stoke life happier goodnight morning 46-60 Guinea',
 'castiel loveeeeeeeeeeeeeeeeeeeeee noon 60-70 South Sudan',
 'catch last bit later jools last series sob cry noon 21-30 Guinea-Bissau',
 'need word part freedom another assignment exam morning 0-20 Cambodia',
 'problem share whole list morning 0-20 Dominica',
 'make diy acid wash short wait see look like morning 0-20 Jamaica',
 'really want go see haha tooo cute morning 0-20 Bahrain',
 'others job like available sound like great experience direct message know others morning 46-60 Hungary',
 'awww lol yh worth mcfly worth eekk noon 21-30 Grenada',
 'yea nice im weekend morning 46-60 New Zealand',
 'watch dr phil special marriage sad ignorant people morning 0-20 Papua New Guinea',
 'follow follower nice noon 21-30 Somalia',
 'ha good morning may fourth morning 46-60 Nauru',
 'drinking yay morning 46-60 Lithuania',
 'look like twitter morning 0-20 Afghanistan',
 'justwatched like straight episode escape id discovery channel guy imprison woman kill cooked morning 46-60 Belarus',
 'instal office mac mess font safari stick help even read solution online badmicrosoft morning 0-20 Timor-Leste',
 'sanctuarysunday mission make sanctuary trend topic day lot people board noon 21-30 Nepal',
 'free free free pesky registration enjoy morning 46-60 Cuba',
 'gonna go crazy leave night 70-100 Jordan',
 'poor bella er first second ear infection since ear infect scream blood curdling night 31-45 United Kingdom',
 'english class work interactive oral night 31-45 Suriname',
 'watch ncis complete first season noon 21-30 Tunisia',
 'time work noon 60-70 Switzerland',
 'love sweet g night every night morning 46-60 Hungary',
 'make sure word poo ball underbelly suck give wk noon 21-30 Saudi Arabia',
 'wish move san diego wa depressed miss sunny san diegoooooooo night 31-45 Liechtenstein',
 'dude know personal experience sorry something like go noon 60-70 Zambia',
 'dagnamit late power twitter update pant clickable link night 31-45 Monaco',
 'twikini enjoy sun noon 21-30 Bulgaria',
 'ugh infamous xbox night 70-100 Honduras',
 'another qi miss next morning 0-20 Micronesia',
 'think go sleep consider hav b night 31-45 Australia',
 'lucky day go large amount little stress detalis get bit gruesome morning 46-60 Georgia',
 'hate bleech mess black outfit noon 60-70 Iceland',
 'total love lip ut favorite morning 0-20 Haiti',
 'endless stream tea holiday day know rain night 31-45 Portugal',
 'helloooo star war day cool lool wen go cnaterbury x noon 60-70 Paraguay',
 'must agree like blackberry noon 60-70 Samoa',
 'im move canada noon 60-70 Venezuela',
 'would amaze could meet u germany germany twice noon 60-70 Kyrgyzstan',
 'bank holiday mondaaaaaay exam tomorrow night 31-45 Ecuador',
 'morning get coffee noon 21-30 Lebanon',
 'post photo robot ok offline hour ttfn oh night 31-45 Burkina Faso',
 'chang thay anh online gi ca night 70-100 Italy',
 'test gauge audience reaction morning 0-20 Ireland',
 'smile follow please lol night 31-45 Zimbabwe',
 'annoyed miss mitch benn lemon tree night 31-45 Peru',
 'way want go noon 21-30 Somalia',
 'hate presentation hahah whatever im glad night 31-45 Belize',
 'alarm watch pill name display function alzheimer patient w b key hear alarm ask noise noon 60-70 Tunisia',
 'home work need continue pack raerae go weekend mya hang morning 46-60 Malawi',
 'help anyone know store carry blackberry trackball go verizon retailer luck want order one night 70-100 United Kingdom',
 'oh look traditional chinese charm love miss shutter morning 46-60 Rwanda',
 'heyy nat twitter twitter twitter get use hahaha love youuuuuuuuuuu night 70-100 Croatia',
 'ha fine positive aha know huh wht long conversation remeber allyson even lnger one x noon 21-30 Bangladesh',
 'knee hurt morning 0-20 Hungary',
 'almost dere really tire eye r really dry night 31-45 Ghana',
 'guess sara make mention mariage proposal site noon 21-30 Zambia',
 'currently post business blog check like morning 46-60 Micronesia',
 'okay idea morning 0-20 Malawi',
 'try find friend luck night 31-45 Syria',
 'holy need see bad gotta wait tomorrow morning 46-60 Cuba',
 'sat pub pretty quiet far prob leave bit work night 31-45 Algeria',
 'time clean noon 21-30 Fiji',
 'last day holydays gotta get back work anyway great week noon 60-70 Romania',
 'buy nokia n amazon say cannot ship address night 31-45 Belize',
 'beauty go morning 0-20 Haiti',
 'think ipod touch may break night 70-100 Morocco',
 'want hug noon 21-30 Albania',
 'absolutly love kill bill vol think lucy liu sooo gorgeous morning 46-60 Jamaica',
 'may th happy star war day starwarsday geek dork fb awesome night 31-45 Croatia',
 'twitter one talk know celebs nt nice spoken noon 21-30 Armenia',
 'whole lot rainstorm goin maybe go morning 0-20 Congo (Congo-Brazzaville)',
 'lol sound like call babe do thought morning 46-60 Palau',
 'ready eastenders go good one last bgt semi final final tomorrow night though excite noon 21-30 Angola',
 'work go night 31-45 Iraq',
 'thanks really fun love romance comedy though one could use comedy imo night 70-100 Barbados',
 'available area would noon 21-30 Fiji',
 'new top morning 0-20 Latvia',
 'aww cute love bathroom morning 0-20 Brunei',
 'drunk job pretty similar sometimes morning 0-20 Lithuania',
 'relax thank hope get put foot tomorrow enjoy day night 31-45 Canada',
 ...]
In [71]:
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(max_features=5000)
Vectorized_X_train = vectorizer.fit_transform(X_train_as_a_list)
Vectorized_X_test = vectorizer.transform(X_test_as_a_list)
print(Vectorized_X_train)
  (0, 627)	0.25389280596332015
  (0, 8)	0.08619601434726595
  (0, 7)	0.086116937240986
  (0, 3063)	0.08602224530634925
  (0, 4448)	0.3092753122153225
  (0, 1609)	0.23374169947169454
  (0, 4603)	0.202142798266915
  (0, 1533)	0.3353886655031511
  (0, 2799)	0.38049708930172854
  (0, 229)	0.31724725270131793
  (0, 614)	0.35560948246448054
  (0, 955)	0.31050105866590305
  (0, 1801)	0.1345250400829935
  (0, 2490)	0.17975349578895858
  (0, 1720)	0.24247440624669858
  (0, 1992)	0.17934341041461435
  (1, 546)	0.5486919821217414
  (1, 3)	0.24667386275417474
  (1, 2)	0.24667386275417474
  (1, 3569)	0.3976096184916141
  (1, 4956)	0.6202200178252506
  (1, 3063)	0.1856740164777573
  (2, 2679)	0.5104948364376694
  (2, 4057)	0.477137332134366
  (2, 2210)	0.6155778154088505
  :	:
  (23355, 4064)	0.24304774458449638
  (23355, 3272)	0.24190342484156924
  (23355, 1859)	0.2317232786531856
  (23355, 4195)	0.4230778051060865
  (23355, 3784)	0.16598200309402558
  (23355, 4702)	0.2225347979635963
  (23355, 4402)	0.16541144065164873
  (23355, 1)	0.09751982179584374
  (23355, 2905)	0.07177863259994127
  (23356, 2665)	0.5460640536511325
  (23356, 1033)	0.5184235428343431
  (23356, 1109)	0.2974285563192731
  (23356, 2519)	0.41065257371857117
  (23356, 1)	0.2357061374551592
  (23356, 2905)	0.3469789819215235
  (23357, 3052)	0.4027566160701499
  (23357, 1362)	0.41226764274220873
  (23357, 4928)	0.3827236954350107
  (23357, 3505)	0.2683778441000005
  (23357, 3079)	0.32105180324737687
  (23357, 3561)	0.5214567511317622
  (23357, 4333)	0.211056473233519
  (23357, 6)	0.1187654241827802
  (23357, 2905)	0.08766574316890115
  (23357, 7)	0.08939607171784457
In [72]:
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score
svc = LinearSVC()
svc.fit(Vectorized_X_train,y_train1)
#y_train_pred = svc.predict(X_train)
svc_y_test_pred = svc.predict(Vectorized_X_test)
#metrics(y_train,y_train_pred,y_test,y_test_pred)
svc_test_acc = accuracy_score(y_test1, svc_y_test_pred)
svc_test_prec = precision_score(y_test1, svc_y_test_pred, average='macro')
svc_test_recall = recall_score(y_test1, svc_y_test_pred, average='macro')
svc_test_acc, svc_test_prec, svc_test_recall 
Out[72]:
(0.6761280931586608, 0.676863331803847, 0.6712547652869681)
In [73]:
from sklearn.ensemble import RandomForestClassifier

# Create a Random Forest Classifier object
rf = RandomForestClassifier(n_estimators=100, random_state=42)

# Train the model on the training data
rf.fit(Vectorized_X_train, y_train1)

# Make predictions on the testing data
rf_y_pred = rf.predict(Vectorized_X_test)

# Calculate the accuracy of the model
rf_test_acc = accuracy_score(y_test1, rf_y_pred)
rf_test_prec = precision_score(y_test1, rf_y_pred, average='macro')
rf_test_recall = recall_score(y_test1, rf_y_pred, average='macro')
print('Random Forest Test Accuracy:', rf_test_acc)
rf_test_prec, rf_test_recall
Random Forest Test Accuracy: 0.6809801067442989
Out[73]:
(0.6881619156974293, 0.6692408275775431)
In [74]:
from sklearn.neighbors import KNeighborsClassifier


# Fit KNN model
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(Vectorized_X_train, y_train1)

# Predict test set labels
knn_y_test_pred = knn.predict(Vectorized_X_test)

# Evaluate performance
knn_test_acc = accuracy_score(y_test1, knn_y_test_pred)
knn_test_prec = precision_score(y_test1, knn_y_test_pred, average='macro')
knn_test_recall = recall_score(y_test1, knn_y_test_pred, average='macro')
print(f"KNN accuracy: {knn_test_acc:}")
knn_test_prec, knn_test_recall
KNN accuracy: 0.442988840368753
Out[74]:
(0.449195798576526, 0.41971069755587287)
In [75]:
from sklearn.tree import DecisionTreeClassifier

# Instantiate a decision tree classifier with some hyperparameters
tree = DecisionTreeClassifier(max_depth=5, min_samples_split=5)

# Train the model on the training data
tree.fit(Vectorized_X_train, y_train1)

# Make predictions on the testing data
tree_y_pred = tree.predict(Vectorized_X_test)

# Evaluate the accuracy of the model
tree_accuracy = accuracy_score(y_test1, tree_y_pred)
tree_prec = precision_score(y_test1, tree_y_pred, average='macro')
tree_recall = recall_score(y_test1, tree_y_pred, average='macro')

print("Accuracy:", tree_accuracy)
tree_prec, tree_recall
Accuracy: 0.5254730713245997
Out[75]:
(0.652504759399687, 0.4612048113091312)
In [76]:
from sklearn.feature_extraction.text import CountVectorizer

# Initialize the CountVectorizer object
vectorizer = CountVectorizer()

# Fit and transform your text data into a matrix of token counts
count_Vectorized_X_train = vectorizer.fit_transform(X_train_as_a_list)
count_Vectorized_X_test = vectorizer.transform(X_test_as_a_list)
print(count_Vectorized_X_train)
  (0, 6922)	1
  (0, 5988)	1
  (0, 8714)	1
  (0, 6289)	1
  (0, 3471)	1
  (0, 2190)	1
  (0, 871)	1
  (0, 9912)	1
  (0, 5409)	1
  (0, 16346)	1
  (0, 5626)	1
  (0, 15768)	1
  (0, 10927)	1
  (0, 7)	1
  (0, 8)	1
  (0, 2250)	1
  (1, 10927)	1
  (1, 17772)	1
  (1, 12820)	1
  (1, 2)	1
  (1, 3)	1
  (1, 1959)	1
  (2, 10927)	1
  (2, 2)	1
  (2, 3)	1
  :	:
  (23355, 13605)	1
  (23355, 14925)	2
  (23355, 6477)	1
  (23355, 11798)	1
  (23355, 14521)	1
  (23355, 5419)	2
  (23355, 6980)	1
  (23355, 11889)	1
  (23355, 17861)	1
  (23356, 10339)	2
  (23356, 1)	1
  (23356, 8898)	1
  (23356, 3933)	1
  (23356, 3716)	1
  (23356, 9385)	1
  (23357, 7)	1
  (23357, 10339)	1
  (23357, 6)	1
  (23357, 15358)	1
  (23357, 12798)	2
  (23357, 10972)	1
  (23357, 12594)	1
  (23357, 17643)	1
  (23357, 4815)	1
  (23357, 10901)	1
In [77]:
svc = LinearSVC()
svc.fit(count_Vectorized_X_train,y_train1)
#y_train_pred = svc.predict(X_train)
count_svc_y_test_pred = svc.predict(count_Vectorized_X_test)
#metrics(y_train,y_train_pred,y_test,y_test_pred)
count_svc_test_acc = accuracy_score(y_test1, count_svc_y_test_pred)
count_svc_test_prec = precision_score(y_test1, count_svc_y_test_pred, average='macro')
count_svc_test_recall = recall_score(y_test1, count_svc_y_test_pred, average='macro')
count_svc_test_acc, count_svc_test_prec, count_svc_test_recall 
Out[77]:
(0.655992236778263, 0.6563081889552621, 0.6522563694190576)
In [78]:
# Create a Random Forest Classifier object
rf = RandomForestClassifier(n_estimators=100, random_state=42)

# Train the model on the training data
rf.fit(count_Vectorized_X_train, y_train1)

# Make predictions on the testing data
count_rf_y_pred = rf.predict(count_Vectorized_X_test)

# Calculate the accuracy of the model
count_rf_test_acc = accuracy_score(y_test1, count_rf_y_pred)
count_rf_test_prec = precision_score(y_test1, count_rf_y_pred, average='macro')
count_rf_test_recall = recall_score(y_test1, count_rf_y_pred, average='macro')
print('Random Forest Test Accuracy:', count_rf_test_acc)
count_rf_test_prec, count_rf_test_recall
Random Forest Test Accuracy: 0.6899563318777293
Out[78]:
(0.6932616851790628, 0.6833413358748196)
In [79]:
from sklearn.neighbors import KNeighborsClassifier


# Fit KNN model
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(count_Vectorized_X_train, y_train1)

# Predict test set labels
count_knn_y_test_pred = knn.predict(count_Vectorized_X_test)

# Evaluate performance
count_knn_test_acc = accuracy_score(y_test1, count_knn_y_test_pred)
count_knn_test_prec = precision_score(y_test1, count_knn_y_test_pred, average='macro')
count_knn_test_recall = recall_score(y_test1, count_knn_y_test_pred, average='macro')
print(f"KNN accuracy: {count_knn_test_acc:}")
count_knn_test_prec, count_knn_test_recall
KNN accuracy: 0.4398350315380883
Out[79]:
(0.4585266017978776, 0.40683738654510054)
In [80]:
from sklearn.tree import DecisionTreeClassifier

# Instantiate a decision tree classifier with some hyperparameters
tree = DecisionTreeClassifier(max_depth=5, min_samples_split=5)

# Train the model on the training data
tree.fit(count_Vectorized_X_train, y_train1)

# Make predictions on the testing data
count_tree_y_pred = tree.predict(count_Vectorized_X_test)

# Evaluate the accuracy of the model
count_tree_accuracy = accuracy_score(y_test1, count_tree_y_pred)
count_tree_prec = precision_score(y_test1, count_tree_y_pred, average='macro')
count_tree_recall = recall_score(y_test1, count_tree_y_pred, average='macro')
print("Accuracy:", count_tree_accuracy)
count_tree_prec, count_tree_recall
Accuracy: 0.5264434740417273
Out[80]:
(0.6542191367537902, 0.4623952874996074)
In [81]:
models = {
    'Linear SVC': svc_test_acc,
    'Random Forest': rf_test_acc,
    'KNN': knn_test_acc,
    'Decision Tree': tree_accuracy
}

model_accuracy_tfidf = pd.DataFrame(models.items(), columns=['Model', 'Accuracy'])
In [82]:
model_accuracy_tfidf['Approach'] = "TF-IDF"
model_accuracy_tfidf
Out[82]:
Model Accuracy Approach
0 Linear SVC 0.676128 TF-IDF
1 Random Forest 0.680980 TF-IDF
2 KNN 0.442989 TF-IDF
3 Decision Tree 0.525473 TF-IDF
In [83]:
models = {
    'Linear SVC': count_svc_test_acc,
    'Random Forest': count_rf_test_acc,
    'KNN': count_knn_test_acc,
    'Decision Tree': count_tree_accuracy
}

model_bag_of_words = pd.DataFrame(models.items(), columns=['Model', 'Accuracy'])
In [84]:
model_bag_of_words['Approach'] = "Bag-Of-Words"
model_bag_of_words
Out[84]:
Model Accuracy Approach
0 Linear SVC 0.655992 Bag-Of-Words
1 Random Forest 0.689956 Bag-Of-Words
2 KNN 0.439835 Bag-Of-Words
3 Decision Tree 0.526443 Bag-Of-Words
In [96]:
# Concatenate the two dataframes and reset index
df = pd.concat([model_bag_of_words, model_accuracy_tfidf])

# plot line plot
sns.set_style("whitegrid")
plt.figure(figsize=(15,5))
#sns.lineplot(x='Model', y='Accuracy', hue = 'Approach',style ='Approach',data=df, markers=True)
sns.pointplot(x='Model', y='Accuracy',hue = 'Approach',data=df)
plt.title('Accuracy of Models using Bag-of-Words and TF-IDF Approaches')
plt.xlabel('Model')
plt.ylabel('Accuracy')
plt.show()
In [89]:
model_names = ['Linear SVC', 'Random Forest', 'KNN', 'Decision Tree']

test_accuracy = [svc_test_acc, rf_test_acc, knn_test_acc, tree_accuracy]

test_precision = [svc_test_prec, rf_test_prec, knn_test_prec, tree_prec]

test_recall = [svc_test_recall, rf_test_recall, knn_test_recall, tree_recall]

model_tfidf = pd.DataFrame({'Model_TF-IDF': model_names, 'Test Accuracy': test_accuracy, 'Test Precision': test_precision, 'Test Recall': test_recall })
In [90]:
model_tfidf
Out[90]:
Model_TF-IDF Test Accuracy Test Precision Test Recall
0 Linear SVC 0.676128 0.676863 0.671255
1 Random Forest 0.680980 0.688162 0.669241
2 KNN 0.442989 0.449196 0.419711
3 Decision Tree 0.525473 0.652505 0.461205
In [91]:
model_tfidf['Approach'] = "TF-IDF"
model_tfidf
Out[91]:
Model_TF-IDF Test Accuracy Test Precision Test Recall Approach
0 Linear SVC 0.676128 0.676863 0.671255 TF-IDF
1 Random Forest 0.680980 0.688162 0.669241 TF-IDF
2 KNN 0.442989 0.449196 0.419711 TF-IDF
3 Decision Tree 0.525473 0.652505 0.461205 TF-IDF
In [92]:
model_names = ['Linear SVC','Random Forest', 'KNN', 'Decision Tree']

count_test_accuracy = [count_svc_test_acc, count_rf_test_acc, count_knn_test_acc, count_tree_accuracy]

count_test_precision = [count_svc_test_prec, count_rf_test_prec, count_knn_test_prec, count_tree_prec]

count_test_recall = [count_svc_test_recall, count_rf_test_recall, count_knn_test_recall, count_tree_recall]

model_bow = pd.DataFrame({'Model_BOW': model_names, 'Test Accuracy': count_test_accuracy, 'Test Precision': count_test_precision, 'Test Recall': count_test_recall })
In [93]:
model_bow
Out[93]:
Model_BOW Test Accuracy Test Precision Test Recall
0 Linear SVC 0.655992 0.656308 0.652256
1 Random Forest 0.689956 0.693262 0.683341
2 KNN 0.439835 0.458527 0.406837
3 Decision Tree 0.526443 0.654219 0.462395
In [94]:
model_bow['Approach'] = "Bag-Of-Words"
model_bow
Out[94]:
Model_BOW Test Accuracy Test Precision Test Recall Approach
0 Linear SVC 0.655992 0.656308 0.652256 Bag-Of-Words
1 Random Forest 0.689956 0.693262 0.683341 Bag-Of-Words
2 KNN 0.439835 0.458527 0.406837 Bag-Of-Words
3 Decision Tree 0.526443 0.654219 0.462395 Bag-Of-Words
In [ ]: